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

Ràng buộc Vi phạm khi duy trì mối quan hệ Một - Nhiều

Thay đổi điều này:

@OneToMany(mappedBy = "providertype")
private Set<HL7DocumentEntity> documententities;

Về điều này:

@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "Link_Documents", joinColumns = {@JoinColumn(name = "codePk", unique = true)}, inverseJoinColumns = {@JoinColumn(name = "change_this_with_primary_key_variable_name_from_HL7DocumentEntity")})
 private Set<HL7DocumentEntity> documententities;

Và trong HL7DocumentEntity thay đổi như sau:

Điều này

@ManyToOne
    @JoinColumns({ @JoinColumn(name = "ptcode", referencedColumnName = "code"),
        @JoinColumn(name = "ptcodesystem", referencedColumnName = "codesystem")
    })
    private HL7GeneralCode providertype;

Thay đổi thành này:

@ManyToOne(fetch = FetchType.LAZY)
  @JoinTable(name = "Link_Documents", joinColumns = {@JoinColumn(name = "change_this_with_primary_key_variable_name_from_HL7DocumentEntity")}, inverseJoinColumns = {@JoinColumn(name = "codePk")})
  private HL7GeneralCode providertype;

Tôi nghĩ bạn phải thay đổi "change_this_with_primary_key_variable_name_from_HL7DocumentEntity" bằng "id" giống như trong BaseEntity nhưng hãy xem bảng sql của bạn, bạn sẽ thấy tên chính xác.

Tôi hy vọng bạn lưu ý Cách tôi đã nói với JPA sử dụng cùng một bảng "Link_Documents" để liên kết 2 bảng. Tôi nghĩ rằng đây là sai lầm của bạn là. Chỉ cần đảm bảo thay đổi nơi tôi đã nói với bạn bằng tên biến chính xác và tôi nghĩ nó sẽ hoạt động



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernate:sự khác biệt giữa MySQLDialect và MySQLInnoDBDialect là gì?

  2. Thay thế \ r \ n bằng PHP

  3. Có Tập lệnh nâng cấp Spring Batch 3 cho MySQL không?

  4. Lỗi MySQL 1436:Chạy tràn ngăn xếp luồng, với truy vấn đơn giản

  5. MySQL:SUM () với JOIN trả về giá trị không chính xác