Ola pessoas…
Estou tentando usar o filter-def do hibernate com o sql-query, mas, ao dar o uniqueresult (pois o filtro seria a chave), a session não usou o filter e volta todos os registros.
Alguem tem alguma informação sobre isso, de não ser possível??
Codigos:
Mapping do Hibernate:
<hibernate-mapping package="com.mb.hibernate.jde">
<class name="hbmUDC">
<id name="codigo"
column="drky"
type="string">
</id>
<property name="descricao"
column="drdl01"
type="string"
not-null="false"
length="30" />
<filter name="codigo" condition=":codigo = codigo"/>
</class>
<sql-query name="UDC.Cobranca">
<return class="hbmUDC" >
<return-property name="codigo" column="drky"/>
<return-property name="descricao" column="drdl01"/>
</return>
SELECT DISTINCT TRIM(DRKY) DRKY, TRIM(DRDL01) DRDL01 FROM F0005
WHERE DRSY='42' AND DRRT='FR' AND TRIM(DRDL02) = 'CTWEB'
ORDER BY DRDL01
</sql-query>
.... (N's sql-query)
<filter-def name="codigo">
<filter-param name="codigo" type="string"/>
</filter-def>
</hibernate-mapping>
Busca no Java:
hbmUDCDAO udcDao = new hbmUDCDAO();
udcDao.setConfigurantionFileName(get_driver(ambiente));
session = udcDao.createNewSession();
session.enableFilter("codigo").setParameter("codigo", codigo);
Query q = session.getNamedQuery(namedQuery);
return (String)q.uniqueResult();
Abraços…