[英]Specifying the owner of a unidirectional @OneToOne JPA mapping
我在Customer
和ShippingAddress
之间建立了一对一的关系。 我想确保如果删除了Customer
, ShippingAddress
也被删除,因此我想将customer
的键存储在shipping_address
表中。 我只需要从客户导航到地址,即关系不需要是双向的。
根据这个 JPA 指南,关系应该像这样映射:
@Entity
public class Customer{
@OneToOne
private ShippingAddress shippingAddress;
}
但是,这将导致shipping_address
的键存储在customer
。 我对此的反对意见是,它会允许某人将一行插入到shipping_address
而无需将其与customer
相关联。 同样,它允许某人在不删除相关地址的情况下延迟customer
的一行。
是否可以创建单向一对一映射,其中
尝试这个:
@Entity
public class Customer {
@Id
private long id;
@OneToOne(mappedBy="customer")
private ShippingAddress shippingAddress;
//...
}
@Entity
public class ShippingAddress {
@Id
private long id;
@OneToOne
@JoinColumn(name = "customer_id", referencedColumnName = "id")
private Customer customer;
//...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.