Java 如何使用外键查询单个对象?

Java 如何使用外键查询单个对象?,java,ormlite,Java,Ormlite,我有这两门课 @DatabaseTable public class User { @DatabaseField(generatedId=true) private int _id; @DatabaseField private String name; @DatabaseField private String password; @DatabaseField(canBeNull = false, foreign = true, uniq

我有这两门课

@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;

我想使用平台从数据库中查询单个用户,因为他们是唯一的,我该怎么做?

我不确定“平台”是什么。要查询与特定
项目匹配的
用户
,您可以执行以下操作:

List<User> results = userDao.queryBuilder().where().eq("item", item).query();
然后,您的查询可以执行以下操作:

...eq(User.ITEM_COLUMN_NAME, item)

请注意,尽管实际存储的字段是一个整数,
eq(…)
方法足够聪明,可以获取
并从中提取其id字段。

感谢您的快速响应,但我仍然收到一个错误。它在“queryForFirst();”下面加下划线,表示“类型Where的方法queryForFirst()未定义”。哦,对不起
QueryBuilder
的方法不是
Where
。我已经更新了我的答案@user1735252。
QueryBuilder<User, Integer> qb = userDao.queryBuilder();
qb.where().eq("item", item);
User user = qb.queryForFirst();
@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)