Если вы выполните ЭТО ОТВЕТ , вы обнаружите, что у нас не может быть свойства автоинкремента в составных первичных ключах.Таким образом, обходной путь должен был бы использовать понятия indexing
и unique constraint
.Создайте столбцы role
, deptt
, grade
как indices
и установите ограничение unique
как true
.Это гарантирует, что пара этих трех значений всегда уникальна (например, primaryKey).Затем добавьте techerId
как Primarykey
(autoGenerate = true) в сущности.Ваш entity
класс будет выглядеть примерно так:
@Entity(tableName = "teacher",indices = arrayOf(Index(value = ["role","department","grade"],unique = true)))
public class Teacher{
@PrimaryKey(autoGenerate = true)
int teacher_id;
@ColumnInfo(name = "name")
String teacher_name;
//Rest of the fields
......
......
}