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