我在 HQL 语句中使用datediff 函数,在 WHERE 子句中使用就可以
在查询列中使用就不行,这是怎么回事?有人能解答一下么?
例如: String hql = "SELECT new Customer(customer.name) FROM Customer customer
WHERE datediff(dy,customer.createDate,current_date()) < 30";
上面这句就可以,
下面这句就不行了:
String hql = "SELECT new Customer(datediff(dy,customer.createDate,current_date()))
FROM Customer customer";它会报 NullPointException
以上语句,前提是我已经写了适当的构造函数
求解
在查询列中使用就不行,这是怎么回事?有人能解答一下么?
例如: String hql = "SELECT new Customer(customer.name) FROM Customer customer
WHERE datediff(dy,customer.createDate,current_date()) < 30";
上面这句就可以,
下面这句就不行了:
String hql = "SELECT new Customer(datediff(dy,customer.createDate,current_date()))
FROM Customer customer";它会报 NullPointException
以上语句,前提是我已经写了适当的构造函数
求解
datediff 在 WHERE 子句中是可以使用的,这一点我是可以肯定这个问题,我已经在在程序里用别的方式处理了
我现在只是希望有人可以解答一下,这个datediff的使用
看来应该是Hibernate 自身的问题了