У меня есть следующая иерархия классов
@Embeddable
public class SomeColumns implements Serializable {
@Column(name = "a", insertable=false, updatable=false)
private String a;
@Column(name = "b", insertable=false, updatable=false)
private String b;
}
public interface SomeCols {
SomeColumns getSomeColumns();
void setSomeColumns(SomeColumns someColumns);
}
@Entity
@Table(name = "Table1", schema = "tab")
public class Table1 implements SomeCols, Serializable {
@Embedded
private SomeColumns someColumns;
public getSomeColumns() {
return someColumns;
}
public void setSomeColumns(SomeColumns someColumns) {
this.someColumns = someColumns;
}
}
@Entity
@Table(name = "Table2", schema = "tab")
public class Table2 extends Table1 {
..............
}
Обе таблицы Table1 и Table2 имеют свои собственные столбцы a и b, которые должны быть независимы друг от друга.Хотя с этой конструкцией я вижу 2 проблемы:
1) Возможно, что значения дочерней таблицы Table2 для a и b будут такими же, как значения a и b родительской таблицы Table1, чего я не хочу.
2) Несмотря на то, что a и b являются столбцами только для чтения, оказывается, я могу изменить их в таблице 2.
Есть ли лучший способ сделать это?