Alias das Consultas do Hibernate

0 respostas
N

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.

Criado 15 de junho de 2009
Respostas 0
Participantes 1