1
如何編寫Hibernate查詢以選擇具有多於兩個值的值?在Hibernate中選擇具有多於兩個值的查詢
metrics = new long[]{1, 2, 3};
rprtAutoCustomColum = reportSettingServive.getColumnsMap("1,2,3");
有三個columnId的。我想在HashMap
public Map<Long, String> customeCol = new HashMap<>();
public HashMap<Long, String> getColumnsMap(String columnIds) {
Session session = null;
Transaction transaction = null;
List<ReportsAutomationCustomColumns> automationCustomColumns = new ArrayList();
SQLQuery query;
try {
session = sessionFactory.openSession();
transaction = (Transaction) session.beginTransaction();
String hql = "from lxr_reportsauto_customcolumns where column_id=:columnIds";
Query query = session.createQuery(hql);
List<ReportsAutomationCustomColumns> list = query.list();
transaction.commit();
list.stream().forEach((ReportsAutomationCustomColumns clist) -> {
customeCol.put(clist.getColumnId(), clist.getVariableName());
});
return (HashMap<Long, String>) customeCol;
}
}
普通SQL選擇將ColumnID和變量名和存儲的樣子:
select column_id,variable_name from lxr_reportsauto_customcolumns
where column_id in(1,2,3) order by column_id
但我想在Hibernate中。
嗨雨果,當我試圖運行上面的代碼拋出了以下等式。 ex =(org.hibernate.hql.internal.ast.QuerySyntaxException)org.hibernate.hql.internal.ast.QuerySyntaxException:lxr_reportsauto_customcolumns未映射[來自lxr_reportsauto_customcolumns where column_id in(:columnIds)] –
在HQL中,insted使用表名,您必須使用映射到該表的類名稱。 (所以而不是「lxr_reportsauto_customcolumns」,使用映射到它的類名稱) – 2017-04-10 14:08:09