我的域对象项目包含字段id,name,parentItem和category(Boolean)。 所以我在数据库中插入值,如:
id name parentItem类别
1工具NULL 1
2电动工具1 1
3小工具2 1
4实际工具结束子项目3 0
所以实际项目在类别/路径"工具/电动工具/小工具"
所以我需要通过categoryName / categoryPath实现延迟过滤器搜索。 例如:如果用户输入dataTable过滤器" Electric"我需要退回"电动工具"中的所有项目。类别和子类别中的所有项目(在此示例中为小工具,如果存在则为所有其他项目)。
所以目前我在java域对象@Transient字段中使用递归来获取项目路径。
但是我无法通过Transient字段进行搜索。我的意思是我不能在数据库中实现搜索,因为这个字段是:
1.瞬态
2.使用递归,如果我需要在其他db版本上部署app,我将不得不在db或其他东西上重写递归sql。我不喜欢这个
有人能指出一些聪明,独特的解决方案吗? 任何想法,建议表示赞赏。谢谢!
答案 0 :(得分:1)
这个问题看起来很相似:HQL recursion, how do I do this?
简而言之:你不能在HQL中进行递归。你最好的赌注是: