gpt4 book ai didi

java - 在 Hibernate 中选择具有两个以上值的查询

转载 作者:行者123 更新时间:2023-11-30 06:48:04 25 4
gpt4 key购买 nike

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

metrics = new long[]{1, 2, 3};
rprtAutoCustomColum = reportSettingServive.getColumnsMap("1,2,3");

共有三个columnId。我想选择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

但我想要 hibernate 。

最佳答案

您需要使用所需的值创建一个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);

关于java - 在 Hibernate 中选择具有两个以上值的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43324220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com