OnConflictStrategy


@Retention(value = AnnotationRetention.BINARY)
@IntDef(value = [0, 1, 2, 3, 4, 5])
public annotation OnConflictStrategy


Set of conflict handling strategies for various Dao functions.

Summary

Constants

static final int
ABORT = 3

OnConflict strategy constant to abort the transaction.

static final int
FAIL = 4

This field is deprecated. Use ABORT instead.

static final int
IGNORE = 5

OnConflict strategy constant to ignore the conflict.

static final int
NONE = 0

OnConflict strategy constant used by default when no other strategy is set.

static final int

OnConflict strategy constant to replace the old data and continue the transaction.

static final int

This field is deprecated. Use ABORT instead.

Public constructors

Constants

ABORT

Added in 3.0.0-alpha01
public static final int ABORT = 3

OnConflict strategy constant to abort the transaction. The transaction is rolled back.

FAIL

Added in 3.0.0-alpha01
Deprecated in 3.0.0-alpha01
public static final int FAIL = 4

OnConflict strategy constant to fail the transaction.

The behavior of this strategy is based on the androidx.sqlite.SQLiteDriver implementation provided to Room, For example, it does not work with Android's current SQLite bindings, instead use ABORT to roll back the transaction.

IGNORE

Added in 3.0.0-alpha01
public static final int IGNORE = 5

OnConflict strategy constant to ignore the conflict.

An Insert DAO function that returns the inserted rows ids will return -1 for rows that are not inserted since this strategy will ignore the row if there is a conflict.

NONE

Added in 3.0.0-alpha01
public static final int NONE = 0

OnConflict strategy constant used by default when no other strategy is set. Using it prevents Room from generating ON CONFLICT clause. It may be useful when there is a need to use ON CONFLICT clause within a trigger. The runtime behavior is the same as when ABORT strategy is applied. The transaction is rolled back.

REPLACE

Added in 3.0.0-alpha01
public static final int REPLACE = 1

OnConflict strategy constant to replace the old data and continue the transaction.

An Insert DAO function that returns the inserted rows ids will never return -1 since this strategy will always insert a row even if there is a conflict.

ROLLBACK

Added in 3.0.0-alpha01
Deprecated in 3.0.0-alpha01
public static final int ROLLBACK = 2

OnConflict strategy constant to rollback the transaction.

The behavior of this strategy is based on the androidx.sqlite.SQLiteDriver implementation provided to Room, For example, it does not work with Android's current SQLite bindings, instead use ABORT to roll back the transaction.

Public constructors

OnConflictStrategy

public OnConflictStrategy()