使用Hibernate
执行纯SQL
的场景并不多,大致有以下几种情况:
Hibernate
默认查询表中的所有字段,如果字段过多,性能将大幅降低SQL
效果更好SQL
可能更合适SQL
查询的情况示例代码:
private List<String> getUserIds() {
List<String> userIds = new ArrayList<String>();
String sql = "SELECT ID,NAME,ACCOUNT FROM VO_USERS";
SQLQuery query = getSession().createSQLQuery(sql);
query.setResultTransformer(new ResultTransformer() {
@Override
public Object transformTuple(Object[] arg0, String[] arg1) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
int i = 0;
for (String column : arg1) {
map.put(column, arg0[i++]);
}
return map;
}
@Override
public List transformList(List arg0) {
return arg0;
}
});
List list = query.list();
for (Object object : list) {
Map map = (Map) object;
userIds.add((String) map.get("ID"));
}
getHibernateTemplate().flush();
getHibernateTemplate().clear();
return userIds;
}
本文由 新逸Cary 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://blog.xinac.cn/archives/hibernate-sql-query.html
最后更新:2020-06-24 14:01:50
Update your browser to view this website correctly. Update my browser now