Sugar ORM 中的独特列
Unique columns in Sugar ORM
是否可以创建 Sugar ORM 独有的列?或者是否可以插入或替换指定的行,比方说通过用户名,但是这个用户名可能不在数据库中,因为他可能还没有被创建。
1.3正式版暂不支持。但是您可以使用最新的来源 https://github.com/satyan/sugar 来实现此功能。
可以使用@Unique 注释指定唯一约束。当前的默认行为是在发生冲突时替换。因此,如果违反唯一约束,它将替换现有行。
正如 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();
}
是的,您可以在数据库上使用@Unique 注释class。
com.github.satyan:糖分:1.4
是否可以创建 Sugar ORM 独有的列?或者是否可以插入或替换指定的行,比方说通过用户名,但是这个用户名可能不在数据库中,因为他可能还没有被创建。
1.3正式版暂不支持。但是您可以使用最新的来源 https://github.com/satyan/sugar 来实现此功能。
可以使用@Unique 注释指定唯一约束。当前的默认行为是在发生冲突时替换。因此,如果违反唯一约束,它将替换现有行。
正如 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();
}
是的,您可以在数据库上使用@Unique 注释class。
com.github.satyan:糖分:1.4