在Android中,当存在primarykey时,如何在带有Dao Room的表中插入列表
我有一个包含id和代码的数据类 我有一个只包含代码的列表 如何在不构成ID的情况下将代码插入表中 实际上我根本不需要id列,但似乎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代码
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(代码列表中的代码){
//这里错了,我需要身份证,但我没有身份证。
插入(代码)
}
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
}
}