Bom dia!
Tenho duas tabelas TRANSACAO e transusrs que tem o campo “idtransacao” como relacionamento. O problema é que está retornando todos os registros da tabela “Transacao”:
xml da tabela transacao:
<id name="idtransacao" type="java.lang.Integer">
<column name="IDTRANSACAO" precision="3" scale="0" />
<generator class="increment"></generator>
</id>
<property name="notransacao" type="string">
<column name="NOTRANSACAO" length="60" />
</property>
<property name="nopaginaweb" type="string">
<column name="NOPAGINAWEB" length="60" />
</property>
<set name="transusrs" inverse="true">
<key>
<column name="IDTRANSACAO" precision="3" scale="0" />
</key>
<one-to-many class="model.Transusr" />
</set>
xml da tabela TRANSUSR:
<id name="idtransusr" type="java.lang.Integer">
<column name="IDTRANSUSR" precision="6" scale="0" />
<generator class="increment"></generator>
</id>
<many-to-one name="transacao" class="model.Transacao" fetch="join" >
<column name="IDTRANSACAO" precision="3" scale="0" />
</many-to-one>
<many-to-one name="usuario" class="model.Usuario" fetch="select">
<column name="IDUSUARIO" precision="3" scale="0" />
</many-to-one>
classe que invoca o list da tabela TRANSACAO, esse deveria retornar apenas os dados referente ao usuário logado:
public List getMenu(Usuario user) throws NoSuchAlgorithmException {
List menu = null;
Session session = HibernateUtil.getCurrentSession();
Criteria criteria = session.createCriteria(Transacao.class);
criteria.add(Expression.eq("usuario", user.getIdusuario()));
menu = criteria.list();
HibernateUtil.closeSession();
return menu;
}