sql >> Database teknologi >  >> RDS >> Mysql

Overtrædelse af begrænsning ved vedvarende One To Many-relation

Skift dette:

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

Til dette:

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

Og i HL7DocumentEntity ændres som følger:

Dette

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

Skift til dette:

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

Jeg tror, ​​du skal ændre "change_this_with_primary_key_variable_name_from_HL7DocumentEntity" med "id", som det er i BaseEntity, men tag et kig på din sql-tabel, du vil se det korrekte navn der.

Jeg håber, du bemærker, hvordan jeg fortalte JPA at bruge den samme "Link_Documents"-tabel til at forbinde de 2 tabeller. Jeg tror, ​​det er her din fejl er. Bare sørg for at ændre, hvor jeg fortalte dig med det korrekte variabelnavn, og jeg tror, ​​det burde virke



  1. mysql pivot/krydstabel-forespørgsel

  2. SQL-kommandoer snydeark – Sådan lærer du SQL på 10 minutter

  3. Hvordan får man data fra en mysql-database ved hjælp af javascript?

  4. Lagret procedure for at få indeksstatus i alle databaser