我是Hibernate的新手。我正在构建一个登录门户。我们使用DB Function来加密用户密码。似乎在现有数据库上使用hibernate进行复杂的查询/函数/过程很困难。 是否可以使用Hibernate标准编写以下查询? SQL查询1:
SELECT first_name
FROM user.emp_group
WHERE username = 'XXX'
AND user.decrypt(password, 2) = 'YYYY';
SQL查询2:
SELECT a.DESC
,b.total
FROM user.STATUS a
,(
SELECT STATUS
,count(*) total
FROM user.emp
GROUP BY STATUS
) b
WHERE a.TYPE = b.STATUS (+)
User
是模式名称,解密是函数名称。
我还遇到了从这个Stackoverflow帖子解决的视图中获取数据的问题。 How hibernate retrieve data from existing database view? 谢谢你。
答案 0 :(得分:1)
您可以将本机SQL与hibernate一起使用。
方式是这样的(例如):
String sql = "SELECT first_name, salary FROM EMPLOYEE";
SQLQuery query = session.createSQLQuery(sql);
List data = query.list();
for(Object object : data)
{
Map row = (Map)object;
System.out.print("First Name: " + row.get("first_name"));
System.out.println(", Salary: " + row.get("salary"));
}