我遇到了问题;哪种方法更好。
我必须查询数据库10000次(或更多次)才能获取10000行&然后显示它们。
我可以通过仔细编写一个长查询来对数据库进行一次查询。在当地安排他们然后显示它们。
例如。 我有这样的人的名字
Id Name
1 Amit
2 Mohan
3 Rohan
4 John
5 Kuneel
6 Monu
7 Savita
8 Hari
9 Raju
10 Sita
List one="Amit","Mohan","Rohan","John"
List two="Kuneel","Monu","Savita"
List three="Hari","Raju"
List n="Sita",...
对于第一个列表我将使用或运算符&将返回整数列表。 我可以查询获取所有列表的ID作为整数列表&然后指望他们&安排他们展示ID? 我的问题是我应该单独查询所有列表还是在一个查询中执行此操作;然后安排结果。 请帮忙。任何链接,线索或参考都是值得注意的。 谢谢。
Mysql查询: 获取列表的ID
Select Id from User where(name) IN("Amit","Mohan","Rohan",John");
现在在HQl中,等效查询将返回一个整数列表。 名称也将存储在String&数组中。将用于创建查询字符串。
但我想这样做:
Select Id from User where(name) IN("Amit","Mohan","Rohan","John","Kuneel",
"Monu","Savita","Hari","Raju","Sita","& other names");
并且通过运行此查询返回的字符串列表可以看作前四个ID对应于第一个列表(列表一),接下来三个到第二个&此外,列表的第一个ID对应于第一个列表的第一个名称,即list one
。
Plz告诉你是否需要更多的解释。
谢谢
答案 0 :(得分:1)
你需要使用sql IN子句等效于hibernate。我不确定你的JPA配置是什么,但可能会出现以下情况。
List<?> listForParameters = //initialize the list
Session session = //obtain the session
Criteria crit = session.createCriteria(YourEntityClass.class);
crit.add(Restrictions.in("ParameterName", listForParameters ));
List<?> list = crit.list();
另见