Android 房间:失败查询的返回值是多少?
考虑这个小房间数据库:Android 房间:失败查询的返回值是多少?,android,android-room,Android,Android Room,考虑这个小房间数据库: @Entity public class User { @PrimaryKey public int uid; } @Dao public interface UserDao { @Query("SELECT * FROM user WHERE uid == :uid") User get(int uid); } 对于数据库中不存在的uid,UserDao.get的返回值是多少?我能否可靠地测试没有用户具有给定的ui
@Entity
public class User {
@PrimaryKey
public int uid;
}
@Dao
public interface UserDao {
@Query("SELECT * FROM user WHERE uid == :uid")
User get(int uid);
}
对于数据库中不存在的uid
,UserDao.get的返回值是多少?我能否可靠地测试没有用户具有给定的uid
?像这样:
if (userDao.get(17) == null) {
还是不鼓励像这样查询数据库?我是否应该始终返回一个列表,即使对于最多只能返回一个数据库行的查询也是如此?因此,UserDao
应该是这样的:
@Dao
public interface UserDao {
@Query("SELECT * FROM user WHERE uid == :uid")
List<User> get(int uid);
}
@Dao
公共接口UserDao{
@查询(“从用户中选择*,其中uid==:uid”)
列表获取(intuid);
}
如果查询一个对象,但该对象不在数据库中,Room将返回null。因此,您的方法是可以的,但始终确保不要在主线程中调用DB。如果查询列表,如果未找到匹配的对象,则返回大小为0的列表