Greendao 3,使用户 table 没有重复的用户名

Greendao 3, make users table with no duplicate user names

我在搜索了数小时的解决方案后问了这个问题,但没有找到。 我建立了一个包含三列的数据库:用户名、密码和年龄。 我能够插入新用户并更新它们,但我希望插入两个相同的用户名是不可能的。我知道如何在 sqlite 中执行此操作,但在 greendao 中它不适合我。谢谢。

这是我的用户类:

@Entity(nameInDb = "users")
public class Users{

    @Id(autoincrement = true)
    private Long id;

    @NotNull
    private String userName;

    @NotNull
    private String password;

    @NotNull
    private int age;
}

@Unique 注释应该适合您。

@Entity(nameInDb = "users")
public class Users{

    @Id(autoincrement = true)
    private Long id;

    @Unique
    private String userName;

    @NotNull
    private String password;

    @NotNull
    private int age;
}

如果您需要进一步自定义,您可以向@Entity 注释添加选项

@Entity(
    ...
    // Define indexes spanning multiple columns here.
    indexes = {
            @Index(value = "name DESC", unique = true)
    },
    ...
)