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

Hibernate @Version gây ra lỗi ràng buộc khóa ngoại cơ sở dữ liệu

Đầu tiên :

FK của bạn nên tham chiếu PK của thực thể được tham chiếu. Trong trường hợp tức thì, bạn phải có person.conference_room_id tham chiếu đến conferenceroom.id . Nếu bạn muốn code của mình trở thành trường nhận dạng cho ConferenceRoom thực thể, sau đó không sử dụng khóa thay thế. Nếu mã code cột không phải là ứng cử viên PK, thì nó cũng không phải là ứng cử viên FK.

Thứ hai :

Merge :

Kiên trì :

Tôi nghĩ rằng bạn đã nhầm lẫn merge với persist . Từ những gì tôi có thể biết bằng mã được cung cấp, bạn đang tạo một ConferenceRoom mới và không sửa đổi một cái hiện có. Do đó, merge sẽ không làm những gì bạn muốn nó làm. Hãy thử thay đổi phương thức (được cung cấp) của bạn thành như sau:

public ConferenceRoom getNewConferenceRoom(Person p) {
    ConferenceRoom r = new ConferenceRoom();
    r.setCode("MyUniqueGeneratedCode");
    r.getPeople().add(p);
    // sessionFactory is spring injected member
    sessionFactory.getCurrentSession().persist(r); 
}

Những điều này sẽ khắc phục các vấn đề bạn đã nêu ra.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO fetch:Nhóm tất cả các cặp khóa-giá trị vào mảng assoc

  2. Đặt hàng trước COUNT mỗi giá trị

  3. Làm cách nào để sử dụng ngay bây giờ () trong Doctrine 2 DQL?

  4. ngày hiển thị thông qua thủ tục được lưu trữ

  5. Làm thế nào tôi có thể tạo trình cài đặt cho trang web. Mysql PHP