Ho una lista di categoria. Ho bisogno di un elenco di categorie escludendo 2,3 righe. Possiamo ottenere attraverso l'ibernazione usando i criteri e la restrizione?Come ottenere "non in" usando Restrizioni e criteri in Hibernate?
38
A
risposta
83
La tua domanda non è chiara. Partendo dal presupposto "Categoria" è un'entità root e "2,3" sono ID (o valori di alcune proprietà della categoria ") è possibile escludere utilizzando il seguente:.
Criteria criteria = ...; // obtain criteria from somewhere, like session.createCriteria()
criteria.add(
Restrictions.not(
// replace "id" below with property name, depending on what you're filtering against
Restrictions.in("id", new long[] {2, 3})
)
);
stesso può essere fatto con DetachedCriteria
1
Session session=(Session) getEntityManager().getDelegate();
Criteria criteria=session.createCriteria(RoomMaster.class);
//restriction used or inner restriction ...
criteria.add(Restrictions.not(Restrictions.in("roomNumber",new String[] { "GA8", "GA7"})));
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List<RoomMaster> roomMasters=criteria.list();
Funziona ... Grazie ChssPly76 .. – Shashi