带有Ebean的Java树(同一个表中的父子关系)

时间:2013-03-27 20:20:42

标签: tree playframework-2.1 ebean

我完全不习惯从数据库中检索父子结构。我不能创建一个适用于Ebean演化的下降模型,因为Ebean不能识别父关系。我尝试了什么:

public class Category extends Model {

    private static final long serialVersionUID = 4660222569406895990L;

    private Long id;
    private String sfname;
    // @ManyToOne -- does not work
    // @JoinColumn(name="id")
    private Category parent;

    public static Finder<Integer, Category> FIND = new Finder<Integer, Category>(Integer.class, Category.class);
}

无论我尝试什么,上面的代码都会生成以下SQL Evolution脚本:

create table category (
   id                        bigint,
   name                      varchar(255)
);

如果以上方法有效,那么最高级别没有父级,那么这将如何运作?

我完全没有使用树和java的经验,也许这就是为什么对我来说这么困难:-) 谢谢你的帮助!

** 2013-03-28编辑**

正如nico所指出的,我忘记将@Id添加到主键。因此,以下模型有效:

@Id
private Long id;
private String sfname;
@ManyToOne
private Category parent;

1 个答案:

答案 0 :(得分:0)

您可能忘记了@Id下的private Long id注释:

public class Category extends Model {

    private static final long serialVersionUID = 4660222569406895990L;

    @Id
    private Long id;
    ...
}