# androidx.room

*** ** * ** ***

## Annotations

|---|---|
| `https://developer.android.com/reference/androidx/room/AutoMigration` | Declares an automatic migration on a Database. |
| `https://developer.android.com/reference/androidx/room/BuiltInTypeConverters` | Flags to turn on/off extra type converters provided by Room. |
| `https://developer.android.com/reference/androidx/room/ColumnInfo` | Allows specific customization about the column associated with this property. |
| `https://developer.android.com/reference/androidx/room/ColumnInfo.Collate` |   |
| `https://developer.android.com/reference/androidx/room/ColumnInfo.SQLiteTypeAffinity` | The SQLite column type constants that can be used in typeAffinity() |
| `https://developer.android.com/reference/androidx/room/ConstructedBy` | Defines the `https://developer.android.com/reference/androidx/room/RoomDatabaseConstructor` that will instantiate the Room generated implementation of the annotated `https://developer.android.com/reference/androidx/room/Database`. |
| `https://developer.android.com/reference/androidx/room/Dao` | Marks the class as a Data Access Object. |
| `https://developer.android.com/reference/androidx/room/Database` | Marks a class as a `https://developer.android.com/reference/androidx/room/RoomDatabase`. |
| `https://developer.android.com/reference/androidx/room/DatabaseView` | Marks a class as an SQLite view. |
| `https://developer.android.com/reference/androidx/room/Delete` | Marks a method in a `https://developer.android.com/reference/androidx/room/Dao` annotated class as a delete method. |
| `https://developer.android.com/reference/androidx/room/DeleteColumn` | Repeatable annotation declaring the deleted columns in the `https://developer.android.com/reference/androidx/room/AutoMigration#to()` version of an auto migration. |
| `https://developer.android.com/reference/androidx/room/DeleteColumn.Entries` | Container annotation for the repeatable annotation `https://developer.android.com/reference/androidx/room/DeleteColumn`. |
| `https://developer.android.com/reference/androidx/room/DeleteTable` | Repeatable annotation declaring the deleted tables in the `https://developer.android.com/reference/androidx/room/AutoMigration#to()` version of an auto migration. |
| `https://developer.android.com/reference/androidx/room/DeleteTable.Entries` | Container annotation for the repeatable annotation `https://developer.android.com/reference/androidx/room/DeleteTable`. |
| `https://developer.android.com/reference/androidx/room/Embedded` | Marks a field of an `https://developer.android.com/reference/androidx/room/Entity` or POJO to allow nested fields (i.e. fields of the annotated field's class) to be referenced directly in the SQL queries. |
| `https://developer.android.com/reference/androidx/room/Entity` | Marks a class as an entity. |
| `https://developer.android.com/reference/androidx/room/ExperimentalRoomApi` | APIs marked with ExperimentalRoomApi are experimental and may change. |
| `https://developer.android.com/reference/androidx/room/ForeignKey` | Declares a foreign key on another `https://developer.android.com/reference/androidx/room/Entity`. |
| `https://developer.android.com/reference/androidx/room/ForeignKey.Action` | Constants definition for values that can be used in `https://developer.android.com/reference/androidx/room/ForeignKey#onDelete()` and `https://developer.android.com/reference/androidx/room/ForeignKey#onUpdate()`. |
| `https://developer.android.com/reference/androidx/room/Fts3` | Marks an `https://developer.android.com/reference/androidx/room/Entity` annotated class as a FTS3 entity. |
| `https://developer.android.com/reference/androidx/room/Fts4` | Marks an `https://developer.android.com/reference/androidx/room/Entity` annotated class as a FTS4 entity. |
| `https://developer.android.com/reference/androidx/room/Ignore` | Ignores the marked element from Room's processing logic. |
| `https://developer.android.com/reference/androidx/room` | Declares an index on an `https://developer.android.com/reference/androidx/room/Entity`. see: [SQLite Index Documentation](https://sqlite.org/lang_createindex.html) |
| `https://developer.android.com/reference/androidx/room/Insert` | Marks a method in a `https://developer.android.com/reference/androidx/room/Dao` annotated class as an insert method. |
| `https://developer.android.com/reference/androidx/room/Junction` | Declares a junction to be used for joining a relationship. |
| `https://developer.android.com/reference/androidx/room/MapColumn` | Declares which column is used to build a map or multimap return value in a `https://developer.android.com/reference/androidx/room/Dao` query method. |
| `https://developer.android.com/reference/androidx/room/MapInfo` | **This annotation is deprecated.** Use @MapColumn instead. |
| `https://developer.android.com/reference/androidx/room/OnConflictStrategy` | Set of conflict handling strategies for various {@link Dao} methods. |
| `https://developer.android.com/reference/androidx/room/PrimaryKey` | Marks a field in an `https://developer.android.com/reference/androidx/room/Entity` as the primary key. |
| `https://developer.android.com/reference/androidx/room/ProvidedAutoMigrationSpec` | Marks a class as an auto migration spec that will be provided to Room at runtime. |
| `https://developer.android.com/reference/androidx/room/ProvidedTypeConverter` | Marks a class as a type converter that will be provided to Room at runtime. |
| `https://developer.android.com/reference/androidx/room/Query` | Marks a method in a `Dao` annotated class as a query method. |
| `https://developer.android.com/reference/androidx/room/RawQuery` | Marks a method in a `https://developer.android.com/reference/androidx/room/Dao` annotated class as a raw query method where you can pass the query as a `https://developer.android.com/reference/androidx/room/RoomRawQuery` or androidx.sqlite.db.SupportSQLiteQuery. |
| `https://developer.android.com/reference/androidx/room/Relation` | A convenience annotation which can be used in a POJO to automatically fetch relation entities. |
| `https://developer.android.com/reference/androidx/room/RenameColumn` | Repeatable annotation declaring the renamed columns in the `https://developer.android.com/reference/androidx/room/AutoMigration#to()` version of an auto migration. |
| `https://developer.android.com/reference/androidx/room/RenameColumn.Entries` | Container annotation for the repeatable annotation `https://developer.android.com/reference/androidx/room/RenameColumn`. |
| `https://developer.android.com/reference/androidx/room/RenameTable` | Repeatable annotation declaring the renamed tables in the new version of an auto migration. |
| `https://developer.android.com/reference/androidx/room/RenameTable.Entries` | Container annotation for the repeatable annotation `https://developer.android.com/reference/androidx/room/RenameTable`. |
| `https://developer.android.com/reference/androidx/room/RewriteQueriesToDropUnusedColumns` | When present, `https://developer.android.com/reference/androidx/room/RewriteQueriesToDropUnusedColumns` annotation will cause Room to rewrite your `https://developer.android.com/reference/androidx/room/Query` methods such that only the columns that are used in the response are queried from the database. |
| `https://developer.android.com/reference/androidx/room/SkipQueryVerification` | Skips database verification for the annotated element. |
| `https://developer.android.com/reference/androidx/room/Transaction` | Marks a method in a `https://developer.android.com/reference/androidx/room/Dao` class as a transaction method. |
| `https://developer.android.com/reference/androidx/room/TypeConverter` | Marks a method as a type converter. |
| `https://developer.android.com/reference/androidx/room/TypeConverters` | Specifies additional type converters that Room can use. |
| `https://developer.android.com/reference/androidx/room/Update` | Marks a method in a `https://developer.android.com/reference/androidx/room/Dao` annotated class as an update method. |
| `https://developer.android.com/reference/androidx/room/Upsert` | Marks a method in a `https://developer.android.com/reference/androidx/room/Dao` annotated class as an upsert (insert or update) method. |

## Interfaces

|---|---|
| `https://developer.android.com/reference/androidx/room/PooledConnection` | A wrapper of `https://developer.android.com/reference/androidx/sqlite/SQLiteConnection` that belongs to a connection pool and is safe to use in a coroutine. |
| `https://developer.android.com/reference/androidx/room/RoomDatabase.QueryCallback` | Callback interface for when SQLite queries are executed. |
| `https://developer.android.com/reference/androidx/room/RoomDatabaseConstructor` | Defines a class that can instantiate the Room generated implementation of an 'abstract' `https://developer.android.com/reference/androidx/room/Database` annotated `https://developer.android.com/reference/androidx/room/RoomDatabase` definition. |
| `https://developer.android.com/reference/androidx/room/RoomOpenDelegateMarker` | Marker interface for Room's code generated delegate. |
| `https://developer.android.com/reference/androidx/room/TransactionScope` | A `https://developer.android.com/reference/androidx/room/PooledConnection` with an active transaction capable of performing nested transactions. |
| `https://developer.android.com/reference/androidx/room/Transactor` | A `https://developer.android.com/reference/androidx/room/PooledConnection` that can perform transactions. |

## Classes

|---|---|
| `https://developer.android.com/reference/androidx/room/DatabaseConfiguration` | Configuration class for a `https://developer.android.com/reference/androidx/room/RoomDatabase`. |
| `https://developer.android.com/reference/androidx/room/InvalidationTracker` | The invalidation tracker keeps track of tables modified by queries and notifies its created `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html`s about such modifications. |
| `https://developer.android.com/reference/androidx/room/InvalidationTracker.Observer` | An observer that can listen for changes in the database by subscribing to an `https://developer.android.com/reference/androidx/room/InvalidationTracker`. |
| `https://developer.android.com/reference/androidx/room/MultiInstanceInvalidationService` | A `https://developer.android.com/reference/android/app/Service.html` for remote invalidation among multiple `https://developer.android.com/reference/androidx/room/InvalidationTracker` instances. |
| `https://developer.android.com/reference/androidx/room/RoomDatabase` | Base class for all Room databases. |
| `https://developer.android.com/reference/androidx/room/RoomDatabase.Builder` | Builder for `https://developer.android.com/reference/androidx/room/RoomDatabase`. |
| `https://developer.android.com/reference/androidx/room/RoomDatabase.Callback` | Callback for `https://developer.android.com/reference/androidx/room/RoomDatabase` |
| `https://developer.android.com/reference/androidx/room/RoomDatabase.MigrationContainer` | A container to hold migrations. |
| `https://developer.android.com/reference/androidx/room/RoomDatabase.PrepackagedDatabaseCallback` | Callback for `https://developer.android.com/reference/androidx/room/RoomDatabase.Builder#createFromAsset(kotlin.String)`, `https://developer.android.com/reference/androidx/room/RoomDatabase.Builder#createFromFile(java.io.File)` and `https://developer.android.com/reference/androidx/room/RoomDatabase.Builder#createFromInputStream(java.util.concurrent.Callable)` |
| `https://developer.android.com/reference/androidx/room/RoomDatabaseKt` |   |
| `https://developer.android.com/reference/androidx/room/RoomRawQuery` | A query with an argument binding function. |
| `https://developer.android.com/reference/androidx/room/RoomWarnings` | The list of warnings that are produced by Room. |
| `https://developer.android.com/reference/androidx/room/RxRoom` |   |
| `https://developer.android.com/reference/androidx/room/TransactorKt` |   |
| `https://developer.android.com/reference/androidx/room/FtsOptions` | Available option values that can be used with `https://developer.android.com/reference/androidx/room/Fts3`\&`https://developer.android.com/reference/androidx/room/Fts4`. |
| `https://developer.android.com/reference/androidx/room/Room` | Entry point for building and initializing a `https://developer.android.com/reference/androidx/room/RoomDatabase`. |

## Enums

|---|---|
| `https://developer.android.com/reference/androidx/room/BuiltInTypeConverters.State` | Control flags for built in converters. |
| `https://developer.android.com/reference/androidx/room/FtsOptions.MatchInfo` |   |
| `https://developer.android.com/reference/androidx/room/FtsOptions.Order` |   |
| `https://developer.android.com/reference/androidx/room/Index.Order` |   |
| `https://developer.android.com/reference/androidx/room/RoomDatabase.JournalMode` | Journal modes for SQLite database. |
| `https://developer.android.com/reference/androidx/room/Transactor.SQLiteTransactionType` | Transaction types. |

## Exceptions

|---|---|
| `https://developer.android.com/reference/androidx/room/EmptyResultSetException` | Thrown by Room when the query in a `https://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Single.html` DAO method needs to return a result but the returned result from the database is empty. |