如何编写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如下所示:
select column_id,variable_name from lxr_reportsauto_customcolumns
where column_id in(1,2,3) order by column_id 但我想要冬眠。
发布于 2017-04-10 13:28:48
您需要使用所需的值创建一个List,然后将其传递给您的查询,如下所示:
List<Long> values = new ArrayList<Long>();
values.add(1L);
values.add(2L);
values.add(3L);
String hql = "from lxr_reportsauto_customcolumns where column_id in (:columnIds)";
Query query = session.createQuery(hql);
query.setParameterList("columnIds", values);https://stackoverflow.com/questions/43324220
复制相似问题