альтернативный способ для многих ко многим отношениям в jpa - PullRequest
0 голосов
/ 17 марта 2011

Как написать код с отношением «многие ко многим» без использования аннотации jpa @manytomany? Например, для двух классов Программное обеспечение и для Теги . Когда я удаляю тег - он удаляет все программное обеспечение. Я пытался сделать это с аннотацией @manytomany, используя разные подходы, но это не работает. Я видел нечто похожее на мой вопрос на этом сайте, но любой дает пример кода. (Я думаю, это должно быть @OneToMany отношений с обеих сторон, но было бы здорово взять код).

Или как это сделать, используя @manytomany, если это возможно.

Дополнительная информация: если у нас есть soft1, soft2 <-> tag1 и soft2 <-> tag2, и мы удаляем tag1, то удаляется только soft1. Может ли Hibernate справиться с этим?

1 Ответ

0 голосов
/ 17 марта 2011

попробовать с

@org.hibernate.annotations.Cascade(
   {org.hibernate.annotations.CascadeType.PERSIST, 
    org.hibernate.annotations.CascadeType.MERGE, 
    org.hibernate.annotations.CascadeType.REFRESH, 
    org.hibernate.annotations.CascadeType.DETACH, 
    org.hibernate.annotations.CascadeType.DELETE_ORPHAN}
)

Это удалить org.hibernate.annotations.CascadeType.REMOVE из каскада, чтобы избежать следующего сценария

  • Удаление программного обеспечения с идентификатором:5
  • hibernate удаляет теги с id: 5 и 7
  • ВСЕ строки программного обеспечения, помеченные этими идентификаторами, удаляются, и каскад запускается снова, так что вы можете получить пустую БД.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...