# ColumnInfo

Summary:[Nested Classes](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#nestedclasses)\|[Constants](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#constants)\|[Methods](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#inhmethods)  

# ColumnInfo

| The`android.arch`Architecture Components packages are no longer maintained. They have been superseded by the corresponding[androidx.\*](https://developer.android.com/jetpack/androidx/migrate)packages. See[androidx.room.ColumnInfo](https://developer.android.com/reference/androidx/room/ColumnInfo)instead.

`
public


abstract
@interface
ColumnInfo
`  
`


implements

Annotation


`

|------------------------------------------|
| android.arch.persistence.room.ColumnInfo |

<br />

*** ** * ** ***

Allows specific customization about the column associated with this field.

For example, you can specify a column name for the field or change the column's type affinity.

## Summary

|                                                                                                                                                    ### Nested classes                                                                                                                                                     ||
|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` @interface` | [ColumnInfo.Collate](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo.Collate) <br />                                                                                                                                                                                      |
| ` @interface` | [ColumnInfo.SQLiteTypeAffinity](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo.SQLiteTypeAffinity) The SQLite column type constants that can be used in[typeAffinity()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#typeAffinity()) |

|                                                                                              ### Constants                                                                                               ||
|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `int`    | [BINARY](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#BINARY) Collation sequence for case-sensitive match.                                                 |
| `int`    | [BLOB](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#BLOB) Column affinity constant for binary data.                                                        |
| `String` | [INHERIT_FIELD_NAME](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#INHERIT_FIELD_NAME) Constant to let Room inherit the field name as the column name.      |
| `int`    | [INTEGER](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#INTEGER) Column affinity constant for integers or booleans.                                         |
| `int`    | [LOCALIZED](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#LOCALIZED) Collation sequence that uses system's current locale.                                  |
| `int`    | [NOCASE](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#NOCASE) Collation sequence for case-insensitive match.                                               |
| `int`    | [REAL](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#REAL) Column affinity constant for floats or doubles.                                                  |
| `int`    | [RTRIM](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#RTRIM) Collation sequence for case-sensitive match except that trailing space characters are ignored. |
| `int`    | [TEXT](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#TEXT) Column affinity constant for strings.                                                            |
| `int`    | [UNDEFINED](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#UNDEFINED) Undefined type affinity.                                                               |
| `int`    | [UNICODE](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#UNICODE) Collation sequence that uses Unicode Collation Algorithm.                                  |
| `int`    | [UNSPECIFIED](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#UNSPECIFIED) Collation sequence is not specified.                                               |

|                                                                                                    ### Public methods                                                                                                    ||
|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` int`     | ` `[collate](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#collate())`() ` The collation sequence for the column, which will be used when constructing the database.      |
| ` boolean` | ` `[index](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#index())`() ` Convenience method to index the field.                                                             |
| ` String`  | ` `[name](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#name())`() ` Name of the column in the database.                                                                  |
| ` int`     | ` `[typeAffinity](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#typeAffinity())`() ` The type affinity for the column, which will be used when constructing the database. |

| ### Inherited methods |
|-----------------------|---|
| From interface` java.lang.annotation.Annotation ` |-----------------------------------------|-------------------------| | ` abstract Class<? extends Annotation>` | ` annotationType() `    | | ` abstract boolean`                     | ` equals(Object arg0) ` | | ` abstract int`                         | ` hashCode() `          | | ` abstract String`                      | ` toString() `          | ||

## Constants

### BINARY

```
int BINARY
```

Collation sequence for case-sensitive match.

<br />

**See also:**

- [collate()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#collate())

Constant Value: 2 (0x00000002)  

### BLOB

```
int BLOB
```

Column affinity constant for binary data.

<br />

**See also:**

- [typeAffinity()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#typeAffinity())

Constant Value: 5 (0x00000005)  

### INHERIT_FIELD_NAME

```
String INHERIT_FIELD_NAME
```

Constant to let Room inherit the field name as the column name. If used, Room will use the field name as the column name.

<br />

Constant Value: "\[field-name\]"  

### INTEGER

```
int INTEGER
```

Column affinity constant for integers or booleans.

<br />

**See also:**

- [typeAffinity()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#typeAffinity())

Constant Value: 3 (0x00000003)  

### LOCALIZED

```
int LOCALIZED
```

Collation sequence that uses system's current locale.

<br />

**See also:**

- [collate()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#collate())

Constant Value: 5 (0x00000005)  

### NOCASE

```
int NOCASE
```

Collation sequence for case-insensitive match.

<br />

**See also:**

- [collate()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#collate())

Constant Value: 3 (0x00000003)  

### REAL

```
int REAL
```

Column affinity constant for floats or doubles.

<br />

**See also:**

- [typeAffinity()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#typeAffinity())

Constant Value: 4 (0x00000004)  

### RTRIM

```
int RTRIM
```

Collation sequence for case-sensitive match except that trailing space characters are ignored.

<br />

**See also:**

- [collate()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#collate())

Constant Value: 4 (0x00000004)  

### TEXT

```
int TEXT
```

Column affinity constant for strings.

<br />

**See also:**

- [typeAffinity()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#typeAffinity())

Constant Value: 2 (0x00000002)  

### UNDEFINED

```
int UNDEFINED
```

Undefined type affinity. Will be resolved based on the type.

<br />

**See also:**

- [typeAffinity()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#typeAffinity())

Constant Value: 1 (0x00000001)  

### UNICODE

```
int UNICODE
```

Collation sequence that uses Unicode Collation Algorithm.

<br />

**See also:**

- [collate()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#collate())

Constant Value: 6 (0x00000006)  

### UNSPECIFIED

```
int UNSPECIFIED
```

Collation sequence is not specified. The match will behave like[BINARY](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#BINARY).

<br />

**See also:**

- [collate()](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#collate())

Constant Value: 1 (0x00000001)

## Public methods

### collate

```
int collate ()
```

The collation sequence for the column, which will be used when constructing the database.

The default value is[UNSPECIFIED](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#UNSPECIFIED). In that case, Room does not add any collation sequence to the column, and SQLite treats it like[BINARY](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#BINARY).

<br />

|                                                                                                                                                                                                                                                                                                                                             Returns                                                                                                                                                                                                                                                                                                                                             ||
|-------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `int` | The collation sequence of the column. This is either[UNSPECIFIED](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#UNSPECIFIED),[BINARY](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#BINARY),[NOCASE](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#NOCASE),[RTRIM](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#RTRIM),[LOCALIZED](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#LOCALIZED)or[UNICODE](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#UNICODE). <br /> |

### index

```
boolean index ()
```

Convenience method to index the field.

If you would like to create a composite index instead, see:[Index](https://developer.android.com/reference/android/arch/persistence/room).

<br />

|                                           Returns                                           ||
|-----------|----------------------------------------------------------------------------------|
| `boolean` | True if this field should be indexed, false otherwise. Defaults to false. <br /> |

### name

```
String name ()
```

Name of the column in the database. Defaults to the field name if not set.

<br />

|                       Returns                        ||
|----------|--------------------------------------------|
| `String` | Name of the column in the database. <br /> |

### typeAffinity

```
int typeAffinity ()
```

The type affinity for the column, which will be used when constructing the database.

If it is not specified, the value defaults to[UNDEFINED](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#UNDEFINED)and Room resolves it based on the field's type and available TypeConverters.

See[SQLite types documentation](https://www.sqlite.org/datatype3.html)for details.

<br />

|                                                                                                                                                                                                                                                                                Returns                                                                                                                                                                                                                                                                                 ||
|-------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `int` | The type affinity of the column. This is either[UNDEFINED](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#UNDEFINED),[TEXT](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#TEXT),[INTEGER](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#INTEGER),[REAL](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#REAL), or[BLOB](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo#BLOB). <br /> |

-

  ## Annotations

  - [ColumnInfo](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo)
  - [ColumnInfo.Collate](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo.Collate)
  - [ColumnInfo.SQLiteTypeAffinity](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo.SQLiteTypeAffinity)
  - [Dao](https://developer.android.com/reference/android/arch/persistence/room/Dao)
  - [Database](https://developer.android.com/reference/android/arch/persistence/room/Database)
  - [Delete](https://developer.android.com/reference/android/arch/persistence/room/Delete)
  - [Embedded](https://developer.android.com/reference/android/arch/persistence/room/Embedded)
  - [Entity](https://developer.android.com/reference/android/arch/persistence/room/Entity)
  - [ForeignKey](https://developer.android.com/reference/android/arch/persistence/room/ForeignKey)
  - [ForeignKey.Action](https://developer.android.com/reference/android/arch/persistence/room/ForeignKey.Action)
  - [Ignore](https://developer.android.com/reference/android/arch/persistence/room/Ignore)
  - [Index](https://developer.android.com/reference/android/arch/persistence/room)
  - [Insert](https://developer.android.com/reference/android/arch/persistence/room/Insert)
  - [OnConflictStrategy](https://developer.android.com/reference/android/arch/persistence/room/OnConflictStrategy)
  - [PrimaryKey](https://developer.android.com/reference/android/arch/persistence/room/PrimaryKey)
  - [Query](https://developer.android.com/reference/android/arch/persistence/room/Query)
  - [RawQuery](https://developer.android.com/reference/android/arch/persistence/room/RawQuery)
  - [Relation](https://developer.android.com/reference/android/arch/persistence/room/Relation)
  - [SkipQueryVerification](https://developer.android.com/reference/android/arch/persistence/room/SkipQueryVerification)
  - [Transaction](https://developer.android.com/reference/android/arch/persistence/room/Transaction)
  - [TypeConverter](https://developer.android.com/reference/android/arch/persistence/room/TypeConverter)
  - [TypeConverters](https://developer.android.com/reference/android/arch/persistence/room/TypeConverters)
  - [Update](https://developer.android.com/reference/android/arch/persistence/room/Update)
-

  ## Classes

  - [DatabaseConfiguration](https://developer.android.com/reference/android/arch/persistence/room/DatabaseConfiguration)
  - [InvalidationTracker](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker)
  - [InvalidationTracker.Observer](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker.Observer)
  - [Room](https://developer.android.com/reference/android/arch/persistence/room/Room)
  - [RoomDatabase](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase)
  - [RoomDatabase.Builder](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.Builder)
  - [RoomDatabase.Callback](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.Callback)
  - [RoomDatabase.MigrationContainer](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.MigrationContainer)
  - [RoomWarnings](https://developer.android.com/reference/android/arch/persistence/room/RoomWarnings)
  - [RxRoom](https://developer.android.com/reference/android/arch/persistence/room/RxRoom)
-

  ## Enums

  - [RoomDatabase.JournalMode](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.JournalMode)
-

  ## Exceptions

  - [EmptyResultSetException](https://developer.android.com/reference/android/arch/persistence/room/EmptyResultSetException)