Words of wisdom from Joachim Tuchel. Glorp expects your model to be internally consistent. I've had a number of questions from people who expect, when working with databases that it's enough to modify one side and then the database refreshing will take care of the other side. If you have a bi-directional relationship, and the two sides don't match, Glorp will complain when you try and write. Unfortunately, it complains when it gets down to the level of writing rows and sees that there are two different sources trying to write different values to the same field, which isn't always the most helpful in figuring out the original problem.