2016-11-07 102 views
0
session = sessionFactory.openSession();   
Transaction tx = session.beginTransaction(); 
String hql ="from CustomObjectId where CONTAINS(fileName,fileName)"; 
Query query = session.createQuery(hql); 
query.setParameter("fileName", fileName); 
List file=query.list(); 
tx.commit(); 

如何搜索CONTAINS如何使用包含在休眠中

+0

CustomObjectId是表name.fileName是列名 –

+0

文件名是其中包含了需要檢查 –

+0

Sakthi ::你能張貼您的查詢列?一些它如何被刪除,我看不到任何歷史。 – developer

回答

1

需要在子句中使用,如下圖所示:

session = sessionFactory.openSession();   
String hql =" from CustomObjectId c where c.fileName in :fileName"; 
Query query = session.createQuery(hql); 
query.setParameter("fileName", fileName); 
List file=query.list(); 

而且,你並不需要一個交易(明確)從數據庫只讀。所以,只需刪除Transaction tx = session.beginTransaction(); and tx.commit();行。

0

你可以用Hibernate Criteria來做到這一點。

String fileNames[] = {"fileName1", "fileName2"}; 
session = sessionFactory.openSession(); 
Criteria criteria = session.createCriteria(CustomObjectId.class); 
criteria.add(Restrictions.in("fileName ", fileNames)); 
List list = criteria.list();