Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Naruszenie ograniczeń przy utrzymywaniu relacji jeden do wielu

Zmień to:

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

Do tego:

@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;

A w HL7DocumentEntity zmień w następujący sposób:

To

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

Zmień na to:

@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;

Myślę, że musisz zmienić „change_this_with_primary_key_variable_name_from_HL7DocumentEntity” na „id”, tak jak w BaseEntity, ale spójrz na swoją tabelę sql, zobaczysz tam poprawną nazwę.

Mam nadzieję, że zauważyłeś, jak powiedziałem JPA, aby używało tej samej tabeli „Link_Documents” do łączenia dwóch tabel. Myślę, że to był twój błąd. Tylko pamiętaj, aby zmienić miejsce, w którym ci powiedziałem, z poprawną nazwą zmiennej i myślę, że powinno to działać



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uruchamianie/uruchamianie MySQL bez instalacji w systemie Windows

  2. Jakie są zalety korzystania z relacji jeden-do-jednego? (MySQL)

  3. Niezgodność MySQL z PHP

  4. com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:Zduplikowany wpis „” dla klucza „PRIMARY”

  5. java.lang.AbstractMethodError:com.mysql.jdbc.PreparedStatement.setBlob(ILjava/io/InputStream;)V