Olá, eu preciso usar um filtro where numa classe em um hbm.xml do hibernate (pois essa tabela não possui um id uníco), porém eu utilizo duas referencias para a mesma tabela, por exemplo:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
>
<class
name="Tecnologia"
table="TECNOLOGIAS"
lazy="false"
where ="<aliasPlataforma>.txt_dominio = 'PLATAFORMA' AND <aliasSituacao>.txt_dominio = 'AREA'"
>
..........................
<one-to-one
name="plataforma"
class="Dominio"
outer-join="auto"
column="id_dominio"
/>
<one-to-one
name="area"
class="Dominio"
outer-join="auto"
column="id_dominio"
/>
</class>
</hibernate-mapping>
Estrutura da tabela:
txt_dominio id_dominio nome
AREA_TECNOLOGIA 1 Tecnologias Gerais
AREA_TECNOLOGIA 2 Banco de Dados
AREA_TECNOLOGIA 3 Ferramentas
PLATAFORMA 1 Java
PLATAFORMA 2 .NET
PLATAFORMA 3 C++
O problema é que o sql que escrevo no hbm é inserido diretamente na consulta gerada, sendo assim precisaria saber se existe um modo de especificar o alias gerado pelo hibernate para referenciar esses dois objetos. Alguém sabe se isso é possível ou se existe alguma outra alternativa para a solução do problema(Não posso modificar a tabela)?
Obrigado.