I think that the question contains a mistake and that you shouldn't be able to call b2.getFoo() on the Bar bean because if you don't have a cmr-field-name of Foo for the Bar bean, then you should not have an abstract method getFoo() for the Bar bean.
The answer is correct. Don't let the unidirectional thing blurry your judgement. Look at the cardinality. A bar can have atmost only one foo. After the operation, f2 is connected to b1. If B is a wrong answer ( which is not) then b2 is still connected to some foo. What foo is that? The operation has left both f1 and b2 without any partner. Hope it helps. - walk rustin
Walker, Can you elaborate? I currently, agree with everyone else that there is no method b2.getFoo() since it is unidirectional but would like to hear more of your arguement. Are u saying there is a be.getFoo() which returns the comp object for Foo? If so, how do you account for the relationship being unidirectional? -Van