首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Hibernate中选择有两个以上值的查询

在Hibernate中选择有两个以上值的查询
EN

Stack Overflow用户
提问于 2017-04-10 13:16:13
回答 1查看 199关注 0票数 1

如何编写Hibernate查询来选择两个以上值的值?

代码语言:javascript
复制
metrics = new long[]{1, 2, 3};
rprtAutoCustomColum = reportSettingServive.getColumnsMap("1,2,3");

有三个列,我想选择columnId和变量名并存储在HashMap

代码语言:javascript
复制
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如下所示:

代码语言:javascript
复制
select column_id,variable_name from lxr_reportsauto_customcolumns
where column_id in(1,2,3) order by column_id 

但我想要冬眠。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-10 13:28:48

您需要使用所需的值创建一个List,然后将其传递给您的查询,如下所示:

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43324220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档