Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pemetaan Hibernate - Menggabungkan dua tabel dengan tabel asosiasi - Tetapi dengan twist

Anda dapat menggunakan anotasi @JoinTable setelah @OneToOne untuk mengarahkan tabel kartu, jadi Anda tidak memerlukan entitas untuk kartu, tetapi jika tabel kartu bukan hanya tabel relasional, Anda dapat memetakan kartu di Pengguna sebagai @OneToOne dan memiliki metode 'getAddress()' @Transient yang mengembalikan 'this.card.getAddress()', tetapi pada entitas kartu Anda harus memetakan hubungan antara Alamat dan Kartu(@OneToOne(mappedBy='card_id')), dan di Alamat yang dapat Anda petakan card_id sebagai @Id.

Alternatif Pertama

Pelanggan:

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

Alternatif kedua

Pelanggan:

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

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

Kartu:

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

Alamat:

@Id
private String card_id;

Dalam kasus Kedua Kartu memiliki pk Tertanam yang dibentuk oleh dua fks(Pelanggan dan Alamat)

Kartu:

@EmbeddedId
private CustomerAddressPK id;

CustomerAddressPK

@Embeddable
public class CustomerAddressPK(){

  private String cust_id;
  private String card_id;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memperbarui Oracle Clob dengan menggunakan JDBC

  2. Apakah bertentangan dengan lisensi untuk menerbitkan tes kinerja Oracle dan SQL Server?

  3. Bagaimana cara meneruskan varchar dengan tanda kutip tunggal ke Stored Proc di Oracle

  4. Besar .patch_storage

  5. Mendefinisikan Set Karakter untuk kolom Untuk tabel database oracle