Does the "OnePropertyEach" constraint make things a lot easier? Do we lose the ability to build a three way join if one of the joins requires two column matches?