Sugar ORM中的独特列

时间:2015-01-23 17:41:28

标签: android android-sqlite sugarorm

是否可以创建Sugar ORM独有的列?或者是否可以插入或替换指定的行,例如用户名,但是这个用户名可能不在db中,因为他可能没有创建。

3 个答案:

答案 0 :(得分:8)

官方版本1.3尚未支持。但您可以使用最新的源https://github.com/satyan/sugar来实现此功能。

可以使用@Unique注释指定唯一约束。当前的默认行为是在冲突时替换。因此,如果违反了唯一约束,则它将替换现有行。

答案 1 :(得分:2)

正如Satya所说,最新的稳定版本没有官方注释,但您可以使用@Unique注释和最新的预发行版本。我不知道那个注释做了什么,但我尝试了它,发现我应该检查数据库是否有相同的结果,如果返回的列表为空,那么数据是唯一的。这里有一个例子:

if (Contacts.find(Contacts.class, "phone_number = ?", phoneNumber.getText().toString())
                .isEmpty()) {
            new Contacts(fullName.getText().toString(),
                    phoneNumber.getText().toString(),
                    picture.toString()).save();
            startActivity(new Intent(this, MainActivity.class));
        } else {
            Toast.makeText(this, "Already exists!", Toast.LENGTH_LONG).show();
        }

答案 2 :(得分:0)

是的,您可以在db类上使用@Unique注释。

com.github.satyan:糖:1.4