# OnConflictStrategy

# OnConflictStrategy

Artifact:[androidx.room:room-common](https://developer.android.com/jetpack/androidx/releases/room)  
[View Source](https://cs.android.com/search?q=file:androidx/room/OnConflictStrategy.kt+class:androidx.room.OnConflictStrategy)  
Added in[2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/room/OnConflictStrategy "View this page in Java")
Common/AllAndroid/JVMNative/C/iOSJavaScript
  - Cmn  

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

*** ** * ** ***

Set of conflict handling strategies for various {@link Dao} methods.

## Summary

|                                    ### Constants                                    |
|-------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----|
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [ABORT](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#ABORT())` = 3` OnConflict strategy constant to abort the transaction.                                 | Cmn |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FAIL](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#FAIL())` = 4` **This property is deprecated.**Use ABORT instead.                                       | Cmn |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [IGNORE](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#IGNORE())` = 5` OnConflict strategy constant to ignore the conflict.                                 | Cmn |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [NONE](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#NONE())` = 0` OnConflict strategy constant used by default when no other strategy is set.              | Cmn |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [REPLACE](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#REPLACE())` = 1` OnConflict strategy constant to replace the old data and continue the transaction. | Cmn |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [ROLLBACK](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#ROLLBACK())` = 2` **This property is deprecated.**Use ABORT instead.                               | Cmn |

|                                                    ### Public constructors                                                     |
|--------------------------------------------------------------------------------------------------------------------------------|-----|
| [OnConflictStrategy](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#OnConflictStrategy())`()` | Cmn |

## Constants

### ABORT

Cmn  
Added in[2.5.0](https://developer.android.com/jetpack/androidx/releases/room#2.5.0)  

```
const val ABORT = 3: Int
```

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

### FAIL

Cmn  
Added in[2.5.0](https://developer.android.com/jetpack/androidx/releases/room#2.5.0)  
Deprecated in[2.5.0](https://developer.android.com/jetpack/androidx/releases/room#2.5.0)  

```
const val FAIL = 4: Int
```
| **This property is deprecated.**   
| Use ABORT instead.

OnConflict strategy constant to fail the transaction.

Does not work as expected. The transaction is rolled back. Use[ABORT](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#ABORT()).  

### IGNORE

Cmn  
Added in[2.5.0](https://developer.android.com/jetpack/androidx/releases/room#2.5.0)  

```
const val IGNORE = 5: Int
```

OnConflict strategy constant to ignore the conflict.

An[Insert](https://developer.android.com/reference/kotlin/androidx/room/Insert)DAO method 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

Cmn  
Added in[2.5.0](https://developer.android.com/jetpack/androidx/releases/room#2.5.0)  

```
const val NONE = 0: Int
```

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](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#ABORT())strategy is applied.*The transaction is rolled back.*  

### REPLACE

Cmn  
Added in[2.5.0](https://developer.android.com/jetpack/androidx/releases/room#2.5.0)  

```
const val REPLACE = 1: Int
```

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

An[Insert](https://developer.android.com/reference/kotlin/androidx/room/Insert)DAO method 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

Cmn  
Added in[2.5.0](https://developer.android.com/jetpack/androidx/releases/room#2.5.0)  
Deprecated in[2.5.0](https://developer.android.com/jetpack/androidx/releases/room#2.5.0)  

```
const val ROLLBACK = 2: Int
```
| **This property is deprecated.**   
| Use ABORT instead.

OnConflict strategy constant to rollback the transaction.

Does not work with Android's current SQLite bindings. Use[ABORT](https://developer.android.com/reference/kotlin/androidx/room/OnConflictStrategy#ABORT())to roll back the transaction.

## Public constructors

### OnConflictStrategy

Cmn  

```
OnConflictStrategy()
```