我有一堆名为Nodes的JPA entites(女巫Hibernate),其中包含以下字段:
ParentNodeId引用另一个Node,因此我有一个很好的树结构。
我已经将获取类型的Node设置为eager,因此我获得了树中的所有元素。
我想要做的是通过 Active 属性过滤树,即只获取那些 Active 字段设置为1的节点。 / p>
有一种简单的方法吗?
感谢, krisy
答案 0 :(得分:3)
您可以使用hibernate filter
在实体类级别定义@FilterDef
@Entity
@FilterDef (name="nodeFilter",
parameters = @ParamDef( name="activeParam", type="integer" ))
然后在所需属性(属性级别或类级别)上定义@Filter
@Filter(name = "nodeFilter", condition = "active = :activeParam")
最后启用过滤器随时随地(例如findAllNodes())
Filter filter = session.enableFilter("nodeFilter");
filter.setParameter("activeParam", 1); //e.g Active is 1
//then retrieve the result from session