Hibernate как использовать константу как часть составной внешней ссылки
У меня есть основная таблица A с составным первичным ключом, состоящий издва колонны. Один из этих столбцовпостоянная («ПОСТОЯННОЕ ЗНАЧЕНИЕ» в коде ниже). Это определение таблицы выглядит следующим образом:
@Entity public class Master {
@Id
@Column(name = "SIGNIFICANT_KE,Y")
private String realKey;
@Id
@Column(name = "CONSTANT_KEY")
private String constantPartKey;
}
У меня есть подробная таблица B, ссылаясь на основную таблицу A, используя толькоодин (непостоянный) столбец. Я хочу реализовать обычные отношения ManyToOne и OneToMany между двумя таблицами.
Вопрос: Как я могу справиться с этой ситуацией с Hibernate?
Единственное решение для мастер-ссылки, которое я нашел, основано на использованииформулы:
@Entity public class Detail {
@ManyToOne
@JoinColumnsOrFormulas(value={
@JoinColumnOrFormula(column=
@JoinColumn(name = "SIGNIFICANT_KEY",
referencedColumnName = "SIGNIFICANT_KEY",
insertable=false, updatable=false, nullable = false)),
@JoinColumnOrFormula(formula=
@JoinFormula(referencedColumnName="CONSTANT_KEY", value="'THE CONSTANT VALUE'"))
})
Master master;
}
Теперь я вижу другую проблему: я не могу использовать это поле в отношении OneToMany из-за проблемы java.lang.ClassCastException, о которой я сообщал ранее:https://hibernate.onjira.com/browse/HHH-6811