2013-08-20 3 views
3

У меня есть два объекта с unidirectional @OneToMany Lazy отношения. Когда я пытаюсь добавить ребенок, похоже, Hibernate 4 (мой провайдер JPA) фактически выполняетJPA однонаправленный @OneToMany производительность

  1. запроса на выборку
  2. Удалить все ребенок с этим родительским идентификатором присоединиться к таблице
  3. Снова вставьте обратно все и новая ребенок на столе соединения

Как сделать спящий режим, чтобы просто вставить ребенка, которого я хочу, без изменения моих отношений?

ответ

2

По умолчанию однонаправленное отношение @OneToMany будет использовать таблицу соединений, оно будет выполнять операцию как мой вопрос. Если вы используете JPA2 и не используете polyorphic для родителя, вы можете добавить @JoinColumn, что приведет к созданию внешнего ключа в таблице children вместо другой таблицы соединений. Затем поставщик JPA не будет выполнять удаление и повторное включение.

1

создание отношений двунаправленный решит вашу проблему. вы можете прочитать некоторую информацию here

+2

Я не могу изменить его на двунаправленный, как я уже говорил. –

Смежные вопросы