Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 房间:失败查询的返回值是多少?_Android_Android Room - Fatal编程技术网

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的列表