[英]Hibernate JPA hasOne mapping?
假设我们有两个表, ORDERS
和OFFERS
订购POJO
@Entity
@Table(name = "ORDERS")
public class Order {
@Column(columnDefinition = "serial")
private @Id Integer id;
private @NotNull @Email String ownerEmail;
private @NotNull Integer offerId;
}
提供POJO
@Entity
@Table(name = "OFFERS")
public class Offer {
@Column(columnDefinition = "serial")
private @Id Integer id;
private @Email @NotNull String ownerId;
}
是否可以Order by ID
获取EntityManager Order by ID
上的单个查询,以便结果将包含相关的Offer
对象?
就像在Order中创建@Transient Offer字段一样,因为我们不想修改持久订单上的Offer数据。
或者唯一的方法是创建两个查询?
注释@Transient
上offer
现场Order
意味着这个字段将不会映射和持久化。 实际上,您应该映射此字段,但通过将其@ Column.insertable()和@ Column.updatable()设置为false将其设置为只读。
@Entity
@Table(name = "ORDERS")
public class Order {
@Column(columnDefinition = "serial")
private @Id Integer id;
private @NotNull @Email String ownerEmail;
private @NotNull Integer offerId;
@Column(insertable=false , updateable=false)
private Offer offer;
}
要在单个查询中获取订单及其相关商品,您可以使用获取联接:
SELECT order FROM Order order join fetch order.offer
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.