我对JPA映射有一点问题。 我想这样做:
我有一张桌子'sale',它有一个id(ven_cod)。
我有一个表'credit_sale',它的pk应该是一个销售点,这意味着一些销售可以是credit_sale。
例如,我有2个销售,代码为01和02.第二个是credit_sale,而不是表'credit_sales',我将在pk 02中注册。
我如何用jpa-hibernate映射?我试过这个,但没有用:
@Entity
@Table(name = "venda_credito")
public class VendaCredito {
private long cod;
private Cliente cliente;
private StatusPagamento statusPagamento;
private Date dataPagamento;
@Id
@JoinColumn(name = "ven_cod")
@OneToOne
public long getCod() {
return cod;
}
.
.
.
@Entity
@Table(name = "venda")
public class Venda {
private long cod;
@Id
@GeneratedValue
@Column(name = "ven_cod")
public long getCod() {
return cod;
}
.
.
.
我该怎么做才能完成这项工作?
答案 0 :(得分:0)
您可以使用派生身份。
将VendaCredito
更改为:
@Entity
@Table(name = "venda_credito")
public class VendaCredito {
private long cod;
private Venda venda;
private Cliente cliente;
private StatusPagamento statusPagamento;
private Date dataPagamento;
@Id
public long getCod() {
return cod;
}
@MapsId
@JoinColumn(name = "ven_cod")
@OneToOne
public long getCod() {
return cod;
}
.
.
.
这在JPA 2.1规范第2.4.1.3节中讨论。 4。