我正在使用 JPA2
我可以通过以下方式在 Ms Access 中查询它
例如,要找出两年后的周年纪念日:
SELECT DATEADD(year, 2, initialdate) AS Anniv
或者找出自初始日期以来已经过去了多少年:
SELECT DATEDIFF(year, initialdate, GETDATE()) AS YearsPassed
我无法DATEADD
在 JPQL中找到函数
有人可以帮我在 JPQL 中获得类似的效果吗
我正在使用 JPA2
我可以通过以下方式在 Ms Access 中查询它
例如,要找出两年后的周年纪念日:
SELECT DATEADD(year, 2, initialdate) AS Anniv
或者找出自初始日期以来已经过去了多少年:
SELECT DATEDIFF(year, initialdate, GETDATE()) AS YearsPassed
我无法DATEADD
在 JPQL中找到函数
有人可以帮我在 JPQL 中获得类似的效果吗
Hibernate Session 提供了一种doWork()
方法,可以让您直接访问java.sql.Connection
. 然后您可以创建并使用java.sql.CallableStatement
来执行您的功能。
下面是一个 OracleDB 函数示例:
session.doWork(new Work() {
public void execute(Connection connection) throws SQLException {
CallableStatement call = connection.prepareCall("{ ? = call MYSCHEMA.MYFUNC(?,?) }");
call.registerOutParameter( 1, Types.INTEGER ); // or whatever it is
call.setLong(2, id);
call.setLong(3, transId);
call.execute();
int result = call.getInt(1); // propagate this back to enclosing class
}
});
或者你在你的程序逻辑中计算这个。