0

假设我有这两个实体:

@Entity
class A {
    @OneToMany(mappedBy = "a")
    private Collection<B> bCollection;
    ...
}

@Entity
class B {
    @ManyToOne
    @JoinColumn(name = "aId")
    private A a;

    private boolean restricted;
    ...
}

我的问题是:我该怎么做才能只获取restricted = falseA.bCollection 中的 B 实体?

4

1 回答 1

1

使用休眠过滤器:

@Filter(
        name = "restrictedFilter",
        condition="restricted = TRUE"
    )

有关更多信息,请参阅此http://www.mkyong.com/hibernate/hibernate-data-filter-example-xml-and-annotation/

编辑:我刚刚遇到了一个比使用过滤器更简单的解决方案。使用 @Where 注释:

@Where(clause="restricted = TRUE")
private Collection<B> bCollection;
于 2012-07-18T21:37:24.143 回答