Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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_Kotlin_Android Room - Fatal编程技术网

Android 是否仅为一个用户对象使用房间?

Android 是否仅为一个用户对象使用房间?,android,kotlin,android-room,Android,Kotlin,Android Room,我正在编写一个Android应用程序,允许用户登录和注销。登录时,用户对象应存储在房间数据库中。当注销时,应该从数据库中删除用户对象 如何确保房间中只存储一个用户对象?它非常广泛。我不确定您的用户将具有哪些属性,例如唯一id或其他一些唯一标识属性 在这种情况下,若用户类有一个属性,比如唯一id,那个么将其设置为房间表中的主键。然后,在insert/savedoa方法中,声明onConflict解析方法,您可以使用几个选项来处理它 @Insert(onConflict = OnConfli

我正在编写一个Android应用程序,允许用户登录和注销。登录时,用户对象应存储在房间数据库中。当注销时,应该从数据库中删除用户对象


如何确保房间中只存储一个用户对象?

它非常广泛。我不确定您的用户将具有哪些属性,例如唯一id或其他一些唯一标识属性

在这种情况下,若用户类有一个属性,比如唯一id,那个么将其设置为房间表中的主键。然后,在insert/savedoa方法中,声明onConflict解析方法,您可以使用几个选项来处理它

    @Insert(onConflict = OnConflictStrategy.ABORT)
忽略重复,因此它允许重复。您可以使用REPLACE来替换、INGORE、FAIL、ROLLBACK等,而不是ABORT enum

若您并没有这样的唯一标识属性,那个么若需要的话,您可以通过散列用户类拥有的属性来创建一个。不过,我不建议这样做


不过,您似乎希望在应用程序中处理会话管理。对于这种会话管理,不需要使用数据库。您可以使用SharedReference,这通常用于此目的。

我应该设置默认主键还是留出空间自动生成主键?如果您可能具有唯一标识属性,可以使用@PrimaryKey将其标记为主键。或者自动生成。