sql >> Database >  >> RDS >> Mysql

Beperking Schending bij volharden Een-op-veel-relatie

Verander dit:

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

Hierop:

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

En in HL7DocumentEntity verander je als volgt:

Dit

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

Wijzig dit:

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

Ik denk dat je "change_this_with_primary_key_variable_name_from_HL7DocumentEntity" moet veranderen met "id" zoals het is in BaseEntity, maar kijk eens naar je sql-tabel, je zult daar de juiste naam zien.

Ik hoop dat je merkt hoe ik JPA vertelde om dezelfde "Link_Documents"-tabel te gebruiken voor het koppelen van de 2 tabellen. Ik denk dat dit je fout is. Zorg er wel voor dat je verandert waar ik je heb verteld met de juiste variabelenaam en ik denk dat het zou moeten werken



  1. ajax php vervolgkeuzelijst

  2. Verander de tafel zonder de hele tafel te vergrendelen

  3. Hoe SQLite-queryresultaten op te maken in TCL-modus

  4. Een array met waarden verzenden naar de Oracle-procedure om te gebruiken in de WHERE IN-clausule