您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

注释以过滤@OneToMany关联的结果

注释以过滤@OneToMany关联的结果

JPA不支持它,但是如果您将hibernate用作JPA提供程序,则可以使用批注@FilterDef@Filter

Hibernate Core参考文档

Hibernate3能够预定义过滤条件,并在类级别和集合级别附加这些过滤器。过滤条件允许您定义一个限制子句,该子句类似于类和各种集合元素上可用的现有“ where”属性。但是,可以对这些过滤条件进行参数化。然后,应用程序可以在运行时决定是否应启用某些过滤器以及其参数值应为什么。过滤器可以像数据库视图一样使用,但是它们在应用程序内部被参数化。

@Entity
public class A implements Serializable{
    @Id
    @Column(name = "REF")
    private int ref;

    @OneToMany
    @JoinColumn(name = "A_REF", referencedColumnName = "REF")   
    @Filter(name="test")
    private Set<B> bs;
}

@Entity
@FilterDef(name="test", defaultCondition="other = 123")
public class B implements Serializable{
    @Id
    @Column(name = "A_REF")
    private int aRef;

    @Id
    @Column(name = "OTHER")
    private int other;
}

Session session = entityManager.unwrap(Session.class);
session.enableFilter("test");
A a = entityManager.find(A.class, new Integer(0))
a.getb().size() //Only contains b that are equals to 123
dotnet 2022/1/1 18:16:30 有570人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶