Orm Ebean/Play Framework 2.1发布了获取父/子树结构的问题

Orm Ebean/Play Framework 2.1发布了获取父/子树结构的问题,orm,playframework,playframework-2.1,ebean,Orm,Playframework,Playframework 2.1,Ebean,我在尝试获取树结构(一个表中的父/子元素)时遇到问题 使用下面的类,从根节点开始,我可以使用getSubNodes()并接收其子节点。但是,如果我在db中有自己的子节点的子节点上调用getSubNodes(),getSubNodes()将返回一个空列表(db数据包含多个树级别) @实体 @表(name=“导航项目”) 公共类NavigationItem扩展模型{ public static NavigationItemFinder find=新建NavigationItemFinder(); 私

我在尝试获取树结构(一个表中的父/子元素)时遇到问题

使用下面的类,从根节点开始,我可以使用getSubNodes()并接收其子节点。但是,如果我在db中有自己的子节点的子节点上调用getSubNodes(),getSubNodes()将返回一个空列表(db数据包含多个树级别)

@实体
@表(name=“导航项目”)
公共类NavigationItem扩展模型{
public static NavigationItemFinder find=新建NavigationItemFinder();
私有静态最终长serialVersionUID=1L;
@身份证
私有UUID;
@列(唯一=真)
私钥;
@许多酮
私有导航项父节点;
@OneToMany(mappedBy=“parentNode”,cascade=CascadeType.ALL)
私有列表子节点;
@纵队
@必需的
私有字符串标题;
@纵队
私有字符串字幕;
@许多酮
私有页面块页面;

public List getSubNodes(){
返回子节点;//试试这个
@OneToMany(cascade=CascadeType.REFRESH,可选=false)

@JoinColumn(name=“currentTablecolumnName”,referencedColumnName=“ID”,nullable=false)

bachi,你找到这个问题的解决方案了吗?@tavlima,没有,我们遇到了其他问题,然后决定改用JPA,它解决了大部分问题。
@Entity
@Table(name = "navigation_items")
public class NavigationItem extends Model {

    public static NavigationItemFinder find = new NavigationItemFinder();
    private static final long serialVersionUID = 1L;

    @Id
    private UUID id;

    @Column (unique=true)
    private String key;

    @ManyToOne
    private NavigationItem parentNode;

    @OneToMany (mappedBy="parentNode", cascade=CascadeType.ALL)
    private List<NavigationItem> subNodes;

    @Column
    @Required
    private String title;

    @Column
    private String subtitle;

    @ManyToOne
    private PageBlock page;
    public List<NavigationItem> getSubNodes() {
        return subNodes; // <- This crazily but provenly only returns results on the first level of the hierarchy...

    }
    List<NavigationItem> result = find.where().eq("parentNode", this).findList();       
    Logger.debug("NavItem " + getTitle() + "[" + getId() +"]" + ": returning # subnodes: " + result.size());