sql >> Databáze >  >> RDS >> Oracle

Hibernate Mapping - Spojení dvou stolů s asociační tabulkou - Ale s obratem

Mohli byste použít anotaci @JoinTable za @OneToOne k nasměrování na tabulku karet, takže nebudete potřebovat entitu pro kartu, ale pokud tabulka karet není jen relační tabulka, můžete kartu namapovat v Uživateli jako @OneToOne a mít metodu @Transient 'getAddress()', která vrací 'this.card.getAddress()', ale na entitě karty musíte namapovat vztah mezi adresou a kartou (@OneToOne(mappedBy='card_id')) a v Adresa, kterou můžete mapovat card_id jako @Id.

První alternativa

Zákazník:

@OneToOne
@JoinTable(name="card", joinColumns = @JoinColumn(name="cust_id"),
inverseJoinColumns = @JoinColumn(name="card_id"))
private Address address;

Druhá alternativa

Zákazník:

@OneToOne(mappedBy="cust_id")
private Card card;

...
@Transient
public Address getAddress(){
 return this.card == null ? null : this.card.getAddress();
}

Karta:

@OneToOne(mappedBy="card_id")
private Address address;

Adresa:

@Id
private String card_id;

Ve druhém případě má karta vestavěný pk, který je tvořen dvěma fks (zákazník a adresa)

Karta:

@EmbeddedId
private CustomerAddressPK id;

CustomerAddressPK

@Embeddable
public class CustomerAddressPK(){

  private String cust_id;
  private String card_id;
}


  1. Jaký zdroj sdružených dat bych měl použít pro Spring 3.1.0, Hibernate 4.0.1.Final a MySQL 5.1?

  2. Odesílání dat z React do MySQL

  3. Zobrazuje se chyba „Class PDO not found“.

  4. Jaký je ekvivalent Oracle funkce IsNull() serveru SQL?