Advertisement
Guest User

How to attach a database in Room?

a guest
May 8th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.58 KB | None | 0 0
  1. @Database(entities = [Staff::class,Product::class,Barcode::class],version = 1,exportSchema = false)
  2. abstract class AppDataBase : RoomDatabase() {
  3.     companion object {
  4.         private var instance: AppDataBase? = null
  5.  
  6.         fun getInstance(app: Application, path: String): AppDataBase {
  7.             if (instance == null) {
  8.                 instance = Room.databaseBuilder(app.applicationContext, AppDataBase::class.java, path)
  9.                     .allowMainThreadQueries()
  10. //                        .addMigrations(Migration_1_2)
  11.                     .setJournalMode(JournalMode.TRUNCATE)
  12.                     .addCallback(object : RoomDatabase.Callback() {
  13.                         override fun onOpen(db: SupportSQLiteDatabase) {
  14.                             super.onOpen(db)
  15.                             attach("Inventory",StartApplication.instance.preferencePath)
  16.                         }
  17.                     })
  18.                     .build()
  19.             }
  20.             return instance!!
  21.         }
  22.  
  23.         //        private val Migration_1_2 = object : Migration(1, 2) {
  24. //            override fun migrate(database: SupportSQLiteDatabase) {
  25. //            }
  26. //        }
  27.  
  28.         fun attach(databaseName: String, path: String) {
  29.             val sql = ("ATTACH DATABASE '$path' AS $databaseName")
  30.             instance!!.mDatabase.execSQL(sql)
  31.             Log.e("Appdata", sql)
  32.         }
  33.  
  34.     }
  35.  
  36.  
  37.  
  38.     @SkipQueryVerification
  39.     @Query("SELECT iy.Bar_Code from inventory.product pt INNER join inventory iy on pt.ITEM_CD = iy.Bar_Code where iy.BAY_NO = 1")
  40.     fun search() : Int
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement