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

questionAnswers(2)

yourAnswerToTheQuestion