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

Làm cách nào để điền các giá trị khóa ngoại vào cấu hình Hibernate + Spring JPA khi các đối tượng mẹ / con được duy trì cùng một lúc?

Mã đó có hai điều ngăn cản nó hoạt động:

  1. Thực thể của bạn không có @Id . Bạn có thể chỉ bỏ qua vì đây là một ví dụ, nhưng nó đáng để chỉ ra.
  2. Bạn đã lập bản đồ kép cột parent_id . Con có cả trường Dài và trường Cha được ánh xạ vào cùng một cột. Thoát khỏi Long. Đó là mối quan hệ của Cha mẹ mà bạn đang theo đuổi.

Sau đó, những gì bạn có là một-nhiều hai chiều hoàn toàn truyền thống với một cột tham gia. Nếu nó không hoạt động với bạn, thì bạn đang làm sai điều gì đó trong mã nơi bạn tạo và lưu chúng. Rất có thể, bạn đang tạo các đối tượng không đúng cách. Mã chính xác khi sử dụng các thực thể này sẽ trông giống như sau:

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Parent p = new Parent();
Child child = new Child();
child.parent = p;
Child child1 = new Child();
child1.parent = p;
p.children = Arrays.asList(child, child1);
session.save(p);
session.save(p.children.get(0));
session.save(p.children.get(1));
tx.commit();

Đặc biệt lưu ý rằng con nên được đặt trong cha mẹ cũng như cha mẹ trong con. Đừng xây dựng một mô hình đối tượng bị hỏng một nửa và mong đợi Hibernate dọn dẹp đống hỗn độn của bạn. Nhiều người bỏ qua yêu cầu dường như hiển nhiên này và tự hỏi tại sao Hibernate có vẻ không ổn định và / hoặc không đáng tin cậy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chú thích Hibernate 4 - Lỗi cấu hình MySQL:java.sql.SQLException:Không thể thêm ràng buộc khóa ngoại

  2. Làm cách nào để kết nối XAMPP MySQL local DB bằng JDBC?

  3. làm thế nào để sử dụng phpfastcache?

  4. PDO trả về các cột số nguyên dưới dạng Chuỗi trong PHP5.4

  5. MySQL đưa ra lỗi ECONNRESET đọc sau thời gian nhàn rỗi trên máy chủ node.js