Skip to content

Repository files navigation

RoomJoinExampleKT

References

Enable Room with this code Room Java & Room Kotlin

  • Table1
@Entity(tableName ="table_1")
openclassTable1(
@field:ColumnInfo(name = "id")
@field:PrimaryKey(autoGenerate = true)
varid:Int,
@field:ColumnInfo(name = "name")
varname:String
)
  • Table2
@Entity(tableName ="table_2")
classTable2(
@field:ColumnInfo(name = "id")
@field:PrimaryKey(autoGenerate = true)
varid:Int,
@field:ColumnInfo(name = "name")
varname:String,
@field:ColumnInfo(name = "table_1_id")
vartable_1_id:Int
)
  • Table1 Join with Table2
@Dao
interfaceTable1Dao {
@get:Query("SELECT table_1.id, "+"table_1.name, "+"table_2.id as id2, "+"table_2.name as name2, "+"table_2.table_1_id "+"FROM table_1 "+"LEFT JOIN table_2 ON table_2.table_1_id = table_1.id;")
val getJOin:List<Table1_Table2>
}
  • Joined Entity
classTable1_Table2(id:Int, name:String) : Table1(id, name) {
var id2 =0var name2:String?=nullvar table_1_id =0
}
  • Use on your activity
val appDatabase:AppDatabase=AppDatabase.getInstance(application)
val list:List<Table1_Table2> = appDatabase.sampleTable1Dao().getJOin
for (i in list.indices) {
val name1:String= list[i].name
val name2:String= list[i].name2!!Log.d(TAG, "list: "+ i +"_"+ name1 +"_"+ name2)
}
  • Example
classMainActivity : AppCompatActivity() {
val dataTable1:MutableList<Table1> =mutableListOf()
val dataTable2:MutableList<Table2> =mutableListOf()
privatevalTAG="MainActivity"overridefunonCreate(savedInstanceState:Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val appDatabase:AppDatabase=AppDatabase.getInstance(application)
dataTable1.add(Table1(1, "M. Fadli 1"))
dataTable1.add(Table1(2, "M. Fadli 2"))
dataTable1.add(Table1(3, "M. Fadli 3"))
dataTable1.add(Table1(4, "M. Fadli 4"))
appDatabase.sampleTable1Dao().insertAll(dataTable1)
dataTable2.add(Table2(1, "Zein 1", 1))
dataTable2.add(Table2(2, "Zein 2", 2))
dataTable2.add(Table2(3, "Zein 3", 3))
dataTable2.add(Table2(4, "Zein 4", 4))
appDatabase.sampleTable2Dao().insertAll(dataTable2)
val list:List<Table1_Table2> = appDatabase.sampleTable1Dao().getJOin
for (i in list.indices) {
val name1:String= list[i].name
val name2:String= list[i].name2!!Log.d(TAG, "list: "+ i +"_"+ name1 +"_"+ name2)
}
}
}

Example Project

  • Preview

Copyright 2020 M. Fadli Zein

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages