Eclipselink - OneToOne映射

时间:2016-10-11 16:25:18

标签: java sqlite eclipselink

我目前正在开发一个小组管理系统,并使用带有eclipselink和SqlLite的java 8。

@Entity
@Table(name = "T_GROUP")
public class Group {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    private String name;
    private List<Permission> permissions;
    private boolean defaultGroup;
    private String prefix;
    private String suffix;
    private int rank;
    private boolean build;

    @OneToOne
    private Group inherit;

    /**
     * Instantiates a new Group.
     */
    public Group() {

    }

    ...Getters Setters
}

字段继承对具有其他权限的另一个组的引用,但当前组继承了另一个组的所有权限。 我如何使用字段继承?它是相同的类型。 OneToOne关系给出了以下错误:

  

内部异常:java.sql.SQLException:[SQLITE_ERROR] SQL错误或缺少数据库(“CONSTRAINT”附近:语法错误)

     

错误代码:0

     

调用:ALTER TABLE T_GROUP ADD CONSTRAINT FK_T_GROUP_INHERIT_ID FOREIGN KEY(INHERIT_ID)REFERENCES T_GROUP(ID)

1 个答案:

答案 0 :(得分:0)

如果您的问题是如何映射自引用关系,您可以简单地使用@OneToOne注释。这已在JPA: How to have one-to-many relation of the same Entity type

中得到解答