是否可以使用 Sugar ORM 创建唯一的列?或者是否可以插入或替换指定的行,比如说用户名,但是这个用户名可能不在数据库中,因为他可能没有被创建。
问问题
4298 次
3 回答
8
正式版 1.3 尚不支持它。但是您可以使用最新的源https://github.com/satyan/sugar来实现此功能。
可以使用 @Unique 注释指定唯一约束。当前的默认行为是在冲突时替换。因此,如果违反了唯一约束,它将替换现有行。
于 2015-01-23T21:44:19.003 回答
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();
}
于 2015-06-08T14:39:42.570 回答
0
是的,您可以在您的数据库类上使用 @Unique 注释。
com.github.satyan:sugar:1.4
于 2016-09-30T10:30:19.703 回答