gpt4 book ai didi

android - 房间数据库独特的值(value)

转载 作者:行者123 更新时间:2023-12-02 13:18:39 25 4
gpt4 key购买 nike

我正在尝试将房间数据库集成到我的 Android 应用程序中。现在我想从数据库查询不同的结果,但我收到此错误:

error: The columns returned by the query does not have the fields [id] in com.abc.def.model.User even though they are annotated as non-null or primitive. 
Columns returned by the query: [user_name]

我的实体(这里没有复制 Getter 和 Setter):

@Entity
public class User {
@PrimaryKey(autoGenerate = true)
@NonNull
@ColumnInfo(name = "id")
private Integer id;

@ColumnInfo(name = "user_name")
@NonNull
private String name;

@ColumnInfo(name = "email")
private String email;

public User(String name, String email) {
this.name = name;
this.email = email;
}
}

我的道:

@Dao
public interface UserDao {
@Insert
void insertAll(User... users);

// Not working
@Query("SELECT DISTINCT user_name FROM User")
List<User> fetchDistinctUser();

// Working
@Query("SELECT * FROM User")
List<User> fetchAllUser();
}

如果我遗漏了什么,请告诉我。

如果我改变List<User>List<String>它正在工作,但是如果我们还想要其他详细信息怎么办?

原文:

// Not working
@Query("SELECT DISTINCT user_name FROM User")
List<User> fetchDistinctUser();

更改:

// Working
@Query("SELECT DISTINCT user_name FROM User")
List<String> fetchDistinctUser();

但是问题仍然存在,如何获取其他详细信息?

最佳答案

您可以使用Group By解决此问题

@Query("SELECT user_name FROM User group by userID")
List<User> fetchDistinctUser();

与上面的示例一样,您将获得不同的用户。

关于android - 房间数据库独特的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56254349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com