编程语言
首页 > 编程语言> > java-如何对Entity-Bean @OneToMany关系应用默认限制

java-如何对Entity-Bean @OneToMany关系应用默认限制

作者:互联网

我有两个实体模型,客户模型和订单模型.每个客户可能有数千个订单.我在这两个实体之间有一个OneToMany和ManyToOne关系.

如何将这种关系的列表限制为仅前10个订单?

是否可以将“ WHERE”条件用作@OneToMany上的属性?

喜欢:

@OneToMany("Where Order.orderNo > 100")

我的问题是,当实体管理器创建的对象的所有订单都在内存中创建时.
延迟加载无法解决我的问题,因为我需要在默认构造中获得前10个订单.

解决方法:

I mean if it is possible to apply ‘WHERE’ condition as an attribute on @OneToMany or not?

不适用于标准JPA.但是某些提供商对此进行了扩展.例如,Hibernate确实具有@Where批注:

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@Where(clause="1=1")
public Set<Ticket> getTickets() {
    return tickets;
}

参考文献

>休眠注释参考指南

> 2.4.6. Collection related annotations

标签:orm,jpa,ejb-3-0,one-to-many,java
来源: https://codeday.me/bug/20191023/1916348.html