我有两个实体模型:客户和订单。每个顾客都可以拥有数千的订单。我在这两个实体之间有 OneToMany 和 ManyToOne 关系。
如何将此关系的列表限制为仅前 10 个订单?
是否可以将“WHERE”条件作为 @OneToMany 的属性应用?
Like:
@OneToMany("Where Order.orderNo > 100")
我的问题是当实体管理器创建的对象时,所有订单都在内存中创建。懒加载不可以解决了我的考虑,因为我需要在默认构建中获取前10个订单。
我的意思是是否可以将“WHERE”条件作为 @OneToMany 的属性应用?
不适用于标准 JPA。但一些提供商对此有扩展。例如,Hibernate 确实有一个@Where
注解:
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@Where(clause="1=1")
public Set<Ticket> getTickets() {
return tickets;
}
参考
- Hibernate Annotations Reference Guide
- 2.4.6。集合相关注释 http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-hibspec-collection
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)