Hibernate como usar uma constante como parte da referência estrangeira composta
Tenho uma tabela mestre A com uma chave primária composta, consistindo emdoi colunas. Uma dessas colunas é umconstant ("O VALOR CONSTANTE" no código abaixo). Esta definição de tabela é semelhante à seguinte:
@Entity public class Master {
@Id
@Column(name = "SIGNIFICANT_KE,Y")
private String realKey;
@Id
@Column(name = "CONSTANT_KEY")
private String constantPartKey;
}
Tenho uma tabela de detalhes B, referenciando a tabela mestre A usando apenas coluna (não constante). Quero implementar as relações usuais ManyToOne e OneToMany entre as duas tabela
Questã: Como posso lidar com essa situação com o Hibernat
A única solução para referência principal que encontrei depende do uso de formulas:
@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;
}
Agora vejo outro problema: não posso usar esse campo na relação OneToMany devido ao problema java.lang.ClassCastException que relatei aqui anteriormente:https: //hibernate.onjira.com/browse/HHH-681