SW/데이터베이스
////Room DB
MG_
2021. 4. 18. 13:06
interface
- SupportSQLiteDatabase
- SupportSQLiteOpenHelper
FrameworkSQLiteDatabase
RoomDatabase
Room
DatabaseConfiguration
SupportSQLiteOpenHelper.Callback
SQLiteCopyOpenHelper
FrameworkSQLiteOpenHelper
SQLiteDatabase
SQLiteTransactionListener
SQLiteClosable
insert (REPLACE 옵션)
-> id 포함하여 모든 값이 같지만, Table 에서 레코드 삭제 후에 다시 삽입되는 방식
-> 따라서, foreignkey 가 지정된 경우 다른 Table 의 레코드가 삭제될 수 있음
-> 이를 방지하기 위해서는 upsert 전략 필요 (insert 가 conflict 으로 실패하는 경우 update 하거나 그 반대)
- @DAO 클래스에서만 @Transaction 동작
- @Trasnaction 이 붙은 메소드 내부에서 자바 Custom Exception throw 불가능
- Query 인자로 Collection<?> 이 전달되는 경우 최대 999개 까지만 가능, 1000개 이상인 경우 exception 발생
- Migration 은 Worker Thread 에서 호출됨
- DAO 클래스에 @Query 메소드 인자로는 value 만 허용되며, query statement 를 넘기면 동작안됨