Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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/3/clojure/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中,当存在primarykey时,如何在带有Dao Room的表中插入列表_Android_Insert_Android Room_Primary Key_Dao - Fatal编程技术网

在Android中,当存在primarykey时,如何在带有Dao Room的表中插入列表

在Android中,当存在primarykey时,如何在带有Dao Room的表中插入列表,android,insert,android-room,primary-key,dao,Android,Insert,Android Room,Primary Key,Dao,我有一个包含id和代码的数据类 我有一个只包含代码的列表 如何在不构成ID的情况下将代码插入表中 实际上我根本不需要id列,但似乎Room需要一个主键,代码不能是主键 房间: 列表和循环: val codeList : List<String> = ... for (code in codeList){ // wrong here, I need the id, but I do not have ids. RawDao.insert(code) } val代码

我有一个包含id和代码的数据类

我有一个只包含代码的列表

如何在不构成ID的情况下将代码插入表中

实际上我根本不需要id列,但似乎Room需要一个主键,代码不能是主键

房间:

列表和循环:

val codeList : List<String> = ...


for (code in codeList){
    // wrong here, I need the id, but I do not have ids.
    RawDao.insert(code)
}
val代码列表:列表=。。。
for(代码列表中的代码){
//这里错了,我需要身份证,但我没有身份证。
插入(代码)
}
  • 创建一个类似Dao的(或修改现有Dao以包含@Insert,如下所示)
  • :-

    然后,您可以使用以下内容:-

    class MainActivity : AppCompatActivity() {
    
        lateinit var db: RawDatabase
        lateinit var dao: RawDao
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            val rawList: List<Raw> = arrayListOf(Raw(0L,"Test1"),Raw(0L,"Test2"),Raw(0L,"etc...."))
            db = Room.databaseBuilder(this,RawDatabase::class.java,"raw.db")
                    .allowMainThreadQueries()
                    .build()
            dao = db.getRawDao();
            dao.insertManyRaws(rawList) //<<<<<<<<<< ADD All Raws at once
        }
    }
    
    class MainActivity:AppCompatActivity(){
    lateinit var db:RAWDABASE
    lateinit var dao:RawDao
    重写创建时的乐趣(savedInstanceState:Bundle?){
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val rawList:List=arrayListOf(原始(0L,“测试1”)、原始(0L,“测试2”)、原始(0L,“等等)
    db=Room.databaseBuilder(这是RawDatabase::class.java,“raw.db”)
    .allowMainThreadQueries()
    .build()
    dao=db.getRawDao();
    dao.insertManyRaws(原始列表)//
    
    @Dao
    interface RawDao {
        @Insert
        fun insertManyRaws(raws: List<Raw>): List<Long>
    }
    
    @Database(entities = [Raw::class],version = 1)
    abstract class RawDatabase: RoomDatabase() {
        abstract fun getRawDao(): RawDao
    }
    
    class MainActivity : AppCompatActivity() {
    
        lateinit var db: RawDatabase
        lateinit var dao: RawDao
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            val rawList: List<Raw> = arrayListOf(Raw(0L,"Test1"),Raw(0L,"Test2"),Raw(0L,"etc...."))
            db = Room.databaseBuilder(this,RawDatabase::class.java,"raw.db")
                    .allowMainThreadQueries()
                    .build()
            dao = db.getRawDao();
            dao.insertManyRaws(rawList) //<<<<<<<<<< ADD All Raws at once
        }
    }