Pessoal,
Estou tentando fazer um mapeamento no hibernate e não está saindo. Vamos lá:
Tablela: BFJ com id chvbfj e outros campos.
Tabela: CLI com id chvcli e outros campos, esta tabela possue um campo chvbfj que indica um relacionamento com BFJ.
cli.java
...
@OneToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
@JoinColumn(name = "chvbfj")
public Bfj getBfj() {
return bfj;
}
...
Como não estou conseguindo fazer o mapeamento, pelo fato da tabela BFJ não ter um campo apontando para CLI eu fiz ela assim:
bfj.java
...
@Transient
public Cli getCli() throws HibernateException, Exception {
if (this.cli == null) {
this.cli = (Cli) (new Dao<Cli>(Cli.class)).createCriteria().add(
Restrictions.eq("bfj.chvbfj", this.chvbfj)).uniqueResult();
}
return cli;
}
...
Isso ae está porco demais! =) Gostaria de saber se alguém sabe como melhorar isso, ou se tem jeito de dizer ao hibernate que um certo atributo é resultado de uma pesquisa. Se isso for possível, eu tiro este código e coloco uma tag com uma HSQL.
PS. Já andei lendo na documentação da annotation, e não encontrei nada sobre fazer um atributo ser resultado de uma HSQL.
Grato pela atenção,