RoomWarnings
public
class
RoomWarnings
extends Object
java.lang.Object | |
↳ | androidx.room.RoomWarnings |
The list of warnings that are produced by Room.
You can use these values inside a SuppressWarnings
annotation to disable the warnings.
Summary
Constants | |
---|---|
String |
CANNOT_CREATE_VERIFICATION_DATABASE
Reported when Room cannot verify database queries during compilation. |
String |
CURSOR_MISMATCH
The warning dispatched by Room when the return value of a |
String |
DEFAULT_CONSTRUCTOR
Reported when a POJO has multiple constructors, one of which is a no-arg constructor. |
String |
INDEX_FROM_EMBEDDED_ENTITY_IS_DROPPED
Reported when an |
String |
INDEX_FROM_EMBEDDED_FIELD_IS_DROPPED
Reported when an |
String |
INDEX_FROM_PARENT_FIELD_IS_DROPPED
Reported when an |
String |
INDEX_FROM_PARENT_IS_DROPPED
|
String |
MISMATCHED_GETTER
Reported when an `@Entity` field's type do not exactly match the getter type. |
String |
MISMATCHED_SETTER
Reported when an `@Entity` field's type do not exactly match the setter type. |
String |
MISSING_INDEX_ON_FOREIGN_KEY_CHILD
When there is a foreign key from Entity A to Entity B, it is a good idea to index the reference columns in B, otherwise, each modification on Entity A will trigger a full table scan on Entity B. |
String |
MISSING_INDEX_ON_JUNCTION
Reported when a junction entity whose column is used in a `@Relation` field with a `@Junction` does not contain an index. |
String |
MISSING_JAVA_TMP_DIR
Reported when Room cannot verify database queries during compilation due to lack of tmp dir access in JVM. |
String |
MISSING_SCHEMA_LOCATION
Reported when a `room.schemaLocation` argument is not provided into the annotation processor. |
String |
PRIMARY_KEY_FROM_EMBEDDED_IS_DROPPED
Reported when an |
String |
RELATION_QUERY_WITHOUT_TRANSACTION
Reported when a @Query method returns a POJO that has relations but the method is not annotated with @Transaction. |
String |
RELATION_TYPE_MISMATCH
Reported when a |
Public constructors | |
---|---|
RoomWarnings()
This constructor is deprecated. This type should not be instantiated as it contains only static methods. |
Inherited methods | |
---|---|
Constants
CANNOT_CREATE_VERIFICATION_DATABASE
public static final String CANNOT_CREATE_VERIFICATION_DATABASE
Reported when Room cannot verify database queries during compilation. This usually happens when it cannot find the SQLite JDBC driver on the host machine.
Room can function without query verification but its functionality will be limited.
Constant Value: "ROOM_CANNOT_CREATE_VERIFICATION_DATABASE"
CURSOR_MISMATCH
public static final String CURSOR_MISMATCH
The warning dispatched by Room when the return value of a Query
method does not
exactly match the fields in the query result.
Constant Value: "ROOM_CURSOR_MISMATCH"
DEFAULT_CONSTRUCTOR
public static final String DEFAULT_CONSTRUCTOR
Reported when a POJO has multiple constructors, one of which is a no-arg constructor. Room will pick that one by default but will print this warning in case the constructor choice is important. You can always guide Room to use the right constructor using the @Ignore annotation.
Constant Value: "ROOM_DEFAULT_CONSTRUCTOR"
INDEX_FROM_EMBEDDED_ENTITY_IS_DROPPED
public static final String INDEX_FROM_EMBEDDED_ENTITY_IS_DROPPED
Reported when an Entity
that has a Embedded
d field whose type is another
Entity
and that Entity
has some indices defined.
These indices will NOT be created in the containing Entity
. If you want to preserve
them, you can re-define them in the containing Entity
.
Constant Value: "ROOM_EMBEDDED_ENTITY_INDEX_IS_DROPPED"
INDEX_FROM_EMBEDDED_FIELD_IS_DROPPED
public static final String INDEX_FROM_EMBEDDED_FIELD_IS_DROPPED
Reported when an Entity
field that is annotated with Embedded
has a
sub field which has a ColumnInfo
annotation with index = true
.
You can re-define the index in the containing Entity
.
Constant Value: "ROOM_EMBEDDED_INDEX_IS_DROPPED"
INDEX_FROM_PARENT_FIELD_IS_DROPPED
public static final String INDEX_FROM_PARENT_FIELD_IS_DROPPED
Reported when an Entity
inherits a field from its super class and the field has a
ColumnInfo
annotation with index = true
.
These indices are dropped for the Entity
and you would need to re-declare them if
you want to keep them. Alternatively, you can set Entity.inheritSuperIndices()
to true
.
Constant Value: "ROOM_PARENT_FIELD_INDEX_IS_DROPPED"
INDEX_FROM_PARENT_IS_DROPPED
public static final String INDEX_FROM_PARENT_IS_DROPPED
Reported when an Entity
's parent declares an Index
. Room does not
automatically inherit these indices to avoid hidden costs or unexpected constraints.
If you want your child class to have the indices of the parent, you must re-declare
them in the child class. Alternatively, you can set Entity.inheritSuperIndices()
to true
.
Constant Value: "ROOM_PARENT_INDEX_IS_DROPPED"
MISMATCHED_GETTER
public static final String MISMATCHED_GETTER
Reported when an `@Entity` field's type do not exactly match the getter type. For instance, in the following class:
@
Entity
class Foo {
...
private Boolean value;
public boolean getValue() {
return value == null ? false : value;
}
}
Trying to insert this entity into database will always set value
column to
false
when Foo.value
is null
since Room will use the getValue
method to read the value. So even thought the database column is nullable, it will never
be inserted as null
if inserted as a Foo
instance.
Constant Value: "ROOM_MISMATCHED_GETTER_TYPE"
MISMATCHED_SETTER
public static final String MISMATCHED_SETTER
Reported when an `@Entity` field's type do not exactly match the setter type. For instance, in the following class:
@
Entity
class Foo {
...
private Boolean value;
public void setValue(boolean value) {
this.value = value;
}
}
If Room reads this entity from the database, it will always set Foo.value
to
false
when the column value is null
since Room will use the setValue
method to write the value.
Constant Value: "ROOM_MISMATCHED_SETTER_TYPE"
MISSING_INDEX_ON_FOREIGN_KEY_CHILD
public static final String MISSING_INDEX_ON_FOREIGN_KEY_CHILD
When there is a foreign key from Entity A to Entity B, it is a good idea to index the reference columns in B, otherwise, each modification on Entity A will trigger a full table scan on Entity B.
If Room cannot find a proper index in the child entity (Entity B in this case), Room will print this warning.
Constant Value: "ROOM_MISSING_FOREIGN_KEY_CHILD_INDEX"
MISSING_INDEX_ON_JUNCTION
public static final String MISSING_INDEX_ON_JUNCTION
Reported when a junction entity whose column is used in a `@Relation` field with a `@Junction` does not contain an index. If the column is not covered by any index then a full table scan might be performed when resolving the relationship.
It is recommended that columns on entities used as junctions contain indices, otherwise Room will print this warning.
Constant Value: "MISSING_INDEX_ON_JUNCTION"
MISSING_JAVA_TMP_DIR
public static final String MISSING_JAVA_TMP_DIR
Reported when Room cannot verify database queries during compilation due to lack of tmp dir access in JVM.
Constant Value: "ROOM_MISSING_JAVA_TMP_DIR"
MISSING_SCHEMA_LOCATION
public static final String MISSING_SCHEMA_LOCATION
Reported when a `room.schemaLocation` argument is not provided into the annotation processor.
You can either set Database.exportSchema()
to false
or provide
`room.schemaLocation` to the annotation processor. You are strongly adviced to provide it
and also commit them into your version control system.
Constant Value: "ROOM_MISSING_SCHEMA_LOCATION"
PRIMARY_KEY_FROM_EMBEDDED_IS_DROPPED
public static final String PRIMARY_KEY_FROM_EMBEDDED_IS_DROPPED
Reported when an Entity
field that is annotated with Embedded
has a
sub field which is annotated with PrimaryKey
but the PrimaryKey
is dropped
while composing it into the parent object.
Constant Value: "ROOM_EMBEDDED_PRIMARY_KEY_IS_DROPPED"
RELATION_QUERY_WITHOUT_TRANSACTION
public static final String RELATION_QUERY_WITHOUT_TRANSACTION
Reported when a @Query method returns a POJO that has relations but the method is not annotated with @Transaction. Relations are run as separate queries and if the query is not run inside a transaction, it might return inconsistent results from the database.
Constant Value: "ROOM_RELATION_QUERY_WITHOUT_TRANSACTION"
RELATION_TYPE_MISMATCH
public static final String RELATION_TYPE_MISMATCH
Reported when a Relation
Entity
's SQLite column type does not match the type
in the parent. Room will still do the matching using String
representations.
Constant Value: "ROOM_RELATION_TYPE_MISMATCH"
Public constructors
RoomWarnings
public RoomWarnings ()
This constructor is deprecated.
This type should not be instantiated as it contains only static methods.