Android Room Database: Как обновить данные в дочерней таблице?
всем привет. Имеется две связанных таблицы: 1)Employee, 2)Skills Employee - это родительская таблица, а Skills дочерняя. Employee может иметь несколько Skills и по этому я разбил это все на две таблицы. В таблице Skills имеется внешний ключ "employ_id" и название навыка "skill". Оба этих атрибута являются составным ключом.Вопрос в следующем - как изменить имя навыка в дочерней таблице если оба столбца являются составным ключом? Реализовать это пытаюсь с помощью Room.
Entity класс Employee
@Entity
public class Employ {
@NonNull
@PrimaryKey()
@ColumnInfo(name = "id")
private String id;
@ColumnInfo(name = "name")
private String name;
@ColumnInfo(name = "last_name")
private String lastName;
@ColumnInfo(name = "salary")
private String salary;
public Employ(String id, String name, String lastName, String salary) {
this.id = id;
this.name = name;
this.lastName = lastName;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "Employ{" +
"id=" + id +
", name='" + name + '\'' +
", lastName='" + lastName + '\'' +
", salary='" + salary + '\'' +
'}';
}
}
Entity класс Skill
@Entity(tableName = "skill", primaryKeys = {"employ_id", "skill"},
foreignKeys = @ForeignKey(entity = Employ.class, parentColumns = "id", childColumns = "employ_id", onDelete = CASCADE))
public class Skill {
@NonNull
@ColumnInfo(name = "employ_id")
private String employ_id;
@NonNull
@ColumnInfo(name = "skill")
private String skill;
public Skill(String employ_id, String skill) {
this.employ_id = employ_id;
this.skill = skill;
}
@NonNull
public String getEmploy_id() {
return employ_id;
}
public void setEmploy_id(@NonNull String employ_id) {
this.employ_id = employ_id;
}
@NonNull
public String getSkill() {
return skill;
}
public void setSkill(@NonNull String skill) {
this.skill = skill;
}
@Override
public String toString() {
return "Skill{" +
"employId=" + employ_id +
", skill='" + skill + '\'' +
'}';
}
}
