Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mối quan hệ JPA OneToMany / ManyToOne không hoạt động - Tôi đang thiếu điều gì?

Điều chính mà bạn sẽ muốn chú ý là xác định phe sở hữu của mối quan hệ một cách chính xác. Theo như tôi nhớ, rút ​​ra của tôi từ tài liệu chính thức (đôi khi khó hiểu) là phía sở hữu khá nhiều là phía theo mặc định sẽ kích hoạt các tầng và xóa minh bạch.

Ví dụ:trong phần trên, bạn đã xác định phía sở hữu là ProjectEntity , vì vậy bước quan trọng nhất để tính bền vững theo tầng hoạt động là thêm dự án vào PersonEntity.projects .

Sau đó, bạn sẽ muốn gọi persist về phía sở hữu của mối quan hệ, tức là

em.persist(projectTest);

Nếu điều này không hữu ích, tôi khuyên bạn nên bật tính năng đăng nhập SQL trong trình cung cấp JPA của bạn để tìm hiểu nó đang cố gắng thực thi những câu lệnh nào và đặc biệt là theo thứ tự các thực thể này đang được insert ed.

Cũng nên thử, theo các nhận xét hiện có, để duy trì người trước. Nếu bạn làm điều này, tôi tin rằng cách chính xác là thêm đã tiếp tục thực thể cho mối quan hệ, tức là:

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. Trình hướng dẫn dữ liệu thực thể của Entity Framework gặp sự cố khi kết nối với cơ sở dữ liệu MySQL

  2. Loại trừ nhiều giá trị khỏi mảng

  3. Vòng lặp góc không cập nhật

  4. Cách hiển thị hình ảnh từ cơ sở dữ liệu bằng php

  5. Khớp dấu '%' khi tìm kiếm trong cơ sở dữ liệu MySQL