如何使用Hibernate标准调用oracle函数?

时间:2015-07-23 11:08:06

标签: java oracle hibernate hibernate-criteria

我是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? 谢谢你。

1 个答案:

答案 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")); 
     }