Ola pessoal, estou com um problema em manutenção de dados com chave composta atraves de HQL.
Segue a minha classe modelo da tabela.
@Entity
@Table(name="TABELAEMPSEQ")
public class Tabelaempseq implements Serializable {
@EmbeddedId
private TabelaempseqPK tabelaempseqPK;
....
Minha classe de chaves primarias
@Embeddable
public class TabelaempseqPK implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "cd_empresa", nullable = false)
private Integer cd_empresa;
@Column(name = "cd_filial", nullable = false)
private Integer cd_filial;
@Column(name = "nm_tabela", nullable = false)
private String nm_tabela;
....
Tenho outras classes assim e atraves de gravação usando objeto vai embora… mas quando eu preciso do HQL para fazer alguma coisa… segue exemplo:
public Tabelaempseq getSequence() {
Session sessao = HibernateUtil.getSession();
sessao.beginTransaction();
org.hibernate.Query query = sessao.createQuery("from " +
"Tabelaempseq t " +
"where " +
"t.cd_empresa = :cd_empresa and " +
"t.cd_filial = :cd_filial and " +
"t.nm_tabela = :nm_tabela");
query.setString("nm_tabela", this.dsTabela);
query.setInteger("cd_empresa", this.cdEmpresa);
query.setInteger("cd_filial", this.cdFilial);
.....
Ele me retorna um erro:
Exception in thread "main" org.hibernate.QueryException: could not resolve property: cd_empresa of: persistencia.modelo.Tabelaempseq [from persistencia.modelo.Tabelaempseq t where t.cd_empresa = :cd_empresa and t.cd_filial = :cd_filial and t.nm_tabela = :nm_tabela]
Ou seja, eu não sei como usar o HQL para trabalhar com chaves estrangeiras compostas. Detalhe… sou obrigado e ou contra essa situação de banco, mas no momento isso não vem ao caso.
Se alguem ja sofreu ou sabe tratar e puder me auxiliar.
Abraços