日期:2014-05-18  浏览次数:20653 次

hibernate给定条件查询如何提高效率
手上有个list,存放着name
需要在一个表中找到这些name对应的id
我想到的方法是,遍历整个list,然后去查,返回也是个list
判断这个list的大小,大于1的话证明出错,因为name是主键,不会出现1对多的情况,如果小于1,证明没找到,如果为1,那就是这个值
这样效率会不会太低了

------解决方案--------------------
可以通过表设计优化。你这个 name 这个表最好保存 那个表 的 ID。界面显示 名称。保存进数据库的值 存入 ID值。ID对应 ,查询起来 是不是会快一点 
------解决方案--------------------
我觉得你把另一个表里的name和id放到一个map里 name是key id是value 然后用这两个集合去筛选,性能要比你你那个提高很多
------解决方案--------------------
引用:
我表达不清楚= =员工类是本地类,姓名什么的就是字符串,我能用的也就是字符串了,我就想除了最简单的一条一条查之外,提高一点效率,因为用的很频繁

楼主的意思就是你这个函数接收的是一个员工对象的list集合根据这个集合里面的员工名字查询出对应的薪水信息集合,这个薪水信息的集合顺序应该和员工的集合顺序是一致的,也就是第一个员工的名字和薪水集合的第一个员工名字是一样的.
如果是这样的话还是我最开始说的用in的方式拼到hql或sql中直接一次性查询出薪水信息集合.接下来只要把这个集合的顺序改动成与员工集合的顺序一样的就行了可以利用list.set(int index,Object obj);