我实现了一个复合模式/树。这意味着我有一个Parent和Leaf Class,它们都来自Class Components。父类具有包含组件列表的属性。这是使用Hibernate在数据库中正确保存的。当我想显示这个树时,我用
从数据库中获取根元素Parent root = (Parent) session.createQuery("FROM Parent WHERE id=1").uniqueResult();
然后以递归方式遍历此Parent对象的ComponentsList属性。
现在我们来解决我的问题: 我想动态限制数据库的结果。例如,叶子有一个名为“size”的整数属性,我想只显示树中叶子的叶子大于100的叶子(我从html表单得到值100)。
我该怎么做?我必须在上面显示的代码中更改以便它可以工作吗?我有一些想法(它只是伪代码):
session.createQuery("FROM Parent WHERE id=1").limitGT(Leaf.class, "size", 100).uniqeResult();