Mysql
 sql >> база данни >  >> RDS >> Mysql

Връзката на JPA OneToMany/ManyToOne не работи – Какво ми липсва?

Основното нещо, за което ще искате да внимавате, е да дефинирате страна на собственика на връзката правилно. Доколкото си спомням, моят извод от (понякога трудната за разбиране) официална документация беше, че страната на собственик е почти тази, която по подразбиране ще задейства каскади и прозрачни изтривания.

Например в горното сте дефинирали страната-притежател като ProjectEntity , така че най-важната стъпка за работа на каскадно постоянство е да добавите проекта към PersonEntity.projects .

След това ще искате да извикате persist от страна на собственика на връзката, т.е.

em.persist(projectTest);

Ако това не помогне, предлагам да активирате SQL регистриране във вашия доставчик на JPA, за да разберете какви оператори се опитва да изпълни и особено в какъв ред insert са тези обекти изд.

Също така опитайте, според съществуващите коментари, първо да упорствате човек. Ако направите това, смятам, че правилният начин е да добавите постоянен обект на връзката, т.е.:

PersonEntity persistedPerson = em.persist(personTest);
projectTest.setPersonId(persistedPerson);
em.persist(projectTest);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Транспониране на редове в заглавки в MYSQL

  2. Emacs и MySQL на Mac

  3. Кой е най-добрият начин да съхранявате стойностите на квадратчетата за отметка в MySQL база данни?

  4. MySql заявка за избор на записи с определена дата

  5. Сортиране на данните според текущата дата