Mysql
 sql >> база данни >  >> RDS >> Mysql

Нарушение на ограничението при запазване на релация „Едно към много“.

Променете това:

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

Към това:

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

И в HL7DocumentEntity се променя, както следва:

Това

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

Променете на това:

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

Мисля, че трябва да промените "change_this_with_primary_key_variable_name_from_HL7DocumentEntity" с "id", както е в BaseEntity, но погледнете вашата sql таблица, там ще видите правилното име.

Надявам се, че забелязвате как казах на JPA да използва същата таблица "Link_Documents" за свързване на двете таблици. Мисля, че това е вашата грешка. Просто не забравяйте да промените мястото, което ви казах, с правилното име на променливата и мисля, че трябва да работи



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как най-добре да съхранявате потребителска информация и потребителско име и парола

  2. Искате да ограничите стойността на поле на MySQL до конкретен диапазон (десетични стойности)

  3. CakePHP Връзката с базата данни Mysql липсва или не може да бъде създадена

  4. Neo4j - Импортиране на данни от CSV файл с помощта на Cypher

  5. Отпечатък за време на MySQL само при създаване