Что нормального в OpenGL?

Самый короткий ответ кажется вам невозможен, и это имеет смысл. В двунаправленной связи «многие-ко-многим» одна сторона должна быть главной и используется для сохранения изменений в базовой таблице соединений. Поскольку JPA не будет поддерживать обе стороны ассоциации, вы можете столкнуться с ситуацией памяти, которую невозможно перезагрузить после сохранения в базе данных. Пример:

A a1 = new A();
A a2 = new A();
B b = new B();
a1.getB().add(b);
b.getA().add(a2);

Если это состояние может быть сохранено, в таблице соединений вы получите следующие записи:

a1_id, b_id
a2_id, b_id

Но после загрузки, как JPA знает что вы намеревались сообщить b только о a2, а не a1? и что относительно a2, который не должен знать о b?

Вот почему вы должны поддерживать двунаправленную связь самостоятельно (и сделать вышеприведенный пример невозможным для достижения, даже в памяти), и JPA будет сохраняться только на основе на состояние одной его стороны.

16
задан Hamed Rajabi 16 January 2013 в 04:09
поделиться