У меня есть таблица с тремя столбцами: «A», «B» и «C».Два из этих столбцов (A и B) являются составным первичным ключом для таблицы.Я написал класс Java для этой таблицы, и я использую Hibernate для сопоставления данных в классе с данными в таблице.Я создал другой класс для встроенного (то есть составного) ключа.
Два класса выглядят так:
@Entity
@Table(name="SOME_TABLE", schema="SOME_SCHEMA")
public class Outer {
private Key key;
private String a;
private String b;
private String c;
@EmbeddedId
public Key getId() {
return this.key;
}
// Also a setter for Key...
@Column(name="A")
public String getA() {
return this.a;
}
public void setA(final String a) {
this.a = a;
}
// Also setters and getters for B and C.
}
.
@Embeddable
public class Key {
private String a;
private String b;
@Column(name="A")
public String getA() {
return this.a;
}
public void setA(final String a) {
this.a = a;
}
// Also a getter & setter for B.
}
КажетсяКак и во всех глоссариях документации Hibernate, куда именно должны идти геттеры и сеттеры.Должны ли и Outer, и Key иметь установщики для значений, составляющих составной ключ?Если у меня есть установщик в обоих местах, делает ли Hibernate правильную вещь (т.е. устанавливает значение в Key), если я устанавливаю значение для A в Outer?Должны ли Outer.getA / B () и Outer.setA / B () относиться к классу Key?
Я считаю плохой практикой кодирования иметь установщики в двух местах для одних и тех же данных.Это по меньшей мере двусмысленно.Я надеюсь, что Hibernate установит значения для класса Key для меня, но я хотел бы знать наверняка.Спасибо!
-joe