具有自身集合的类ORMLite

时间:2016-11-19 19:12:02

标签: android one-to-many ormlite

如何在ormlite中创建与表本身的一对多关系?我有一个拥有自己收藏的课程。我不知道如何映射这个类。

@DatabaseTable(tableName = "USER")
public class User {

    @DatabaseField(generatedId = true)
    private long id;
    @DatabaseField
    private String username;
    @ForeignCollectionField
    private ForeignCollection<User> friends;
    ...

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

我有一个拥有自己收藏的课程。我不知道如何映射这个类。

我认为最好的方法是定义一个UserFriend实体,该实体具有对所有者User,朋友User和ID的引用。类似的东西:

@DatabaseTable(tableName = "USERFRIEND")
public class UserFriend {

    @DatabaseField(generatedId = true)
    private long id;
    // corresponds to the user who has the friend
    @DatabaseField(foreign = true)
    private User user;
    // corresponds to the friend of the user
    @DatabaseField(foreign = true)
    private User friend;
    ...

然后你的外国收藏品变成:

@ForeignCollectionField(foreignFieldName = 'user')
private ForeignCollection<UserFriend> friends;

请注意foreignFieldName必须指向user,以便找到用户的朋友。