我有这两个类
@DatabaseTable
public class User {
@DatabaseField(generatedId=true)
private int _id;
@DatabaseField
private String name;
@DatabaseField
private String password;
@DatabaseField(canBeNull = false, foreign = true, unique = true)
private Item item;
和
@DatabaseTable
public class Item {
@DatabaseField(generatedId=true)
private int _id;
@DatabaseField
private String name;
我想使用平台从数据库中查询单个用户,因为它们是唯一的,我该怎么做呢?
答案 0 :(得分:0)
我不确定“平台”是什么。要查询与特定User
匹配的Item
,您可以执行以下操作:
List<User> results = userDao.queryBuilder().where().eq("item", item).query();
返回结果列表。如果只有一个那么你可以做
QueryBuilder<User, Integer> qb = userDao.queryBuilder();
qb.where().eq("item", item);
User user = qb.queryForFirst();
使用public final static String
:
@DatabaseTable
public class User {
public final static String ITEM_COLUMN_NAME = "item";
...
@DatabaseField(columnName = ITEM_COLUMN_NAME, canBeNull = false,
foreign = true, unique = true)
private Item item;
然后您的查询可以:
...eq(User.ITEM_COLUMN_NAME, item)
请注意,虽然存储的实际字段是整数,但eq(...)
方法足够聪明,可以从item
中提取其id字段。