将SQL查询转换为等效的Hibernate Criteria

时间:2015-12-08 09:49:20

标签: java mysql hibernate

我是hibernate的新手,我在MYSQL中编写了一些查询,但我需要将这些查询转换为hibernate标准。

SQL查询

select * from tableName where type = 'some Loss' and (datediff(detection_time,clearing_time )> '15 minutes' or action = 'ACTIVE') and id = '216';

我尝试使用标准的代码很少,但它似乎没有用。

2 个答案:

答案 0 :(得分:0)

您需要正确使用DATEDIFF并指定一个单位,即MINUTE

请参阅Documentation - DATEDIFF (Transact-SQL)

  

返回指定的startdate和enddate之间交叉的指定日期部分边界的计数(有符号整数)。

     

语法:DATEDIFF(datepart,startdate,enddate)

试试这个语法:

SELECT  *
FROM    tableName
WHERE   [type] = 'some Loss'
        AND ( DATEDIFF(MINUTE, detection_time, clearing_time) > 15
              OR action = 'ACTIVE'
            )
        AND id = '216';

答案 1 :(得分:0)

之前曾问过这个问题。唯一的区别是问题是关于MySQL而不是普通的SQL。但我认为你应该能够轻松转移它。

也许这会有所帮助:

Converting MySQL query to Hibernate Criteria

更新:

我刚看到还有两个问题可以提供帮助:

Converting mysql query into hibernate query

How to write hibernate criteria for this sql query