Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JPA条件查询,如何获取sysdate+;x_Java_Hibernate_Jpa - Fatal编程技术网

Java 使用JPA条件查询,如何获取sysdate+;x

Java 使用JPA条件查询,如何获取sysdate+;x,java,hibernate,jpa,Java,Hibernate,Jpa,我正在使用JPA标准查询hibernate-JPA-2.0-api(1.0.1.Final) 我想使用我的条件查询(sysdate+指定的任何值(x))从数据库中获取currentDate()+x 如何使用cb.currentDate()实现此目的。必须使用sql查询来获取日期时间。但是,您可以通过HibernateAPI实现这一点 Timestamp timestamp = (Timestamp) getCurrentSession().createSQLQuery("select SYSDA

我正在使用JPA标准查询hibernate-JPA-2.0-api(1.0.1.Final)

我想使用我的条件查询(sysdate+指定的任何值(x))从数据库中获取
currentDate()+x


如何使用cb.currentDate()实现此目的。

必须使用sql查询来获取日期时间。但是,您可以通过HibernateAPI实现这一点

Timestamp timestamp = (Timestamp) getCurrentSession().createSQLQuery("select SYSDATE param from dual").addScalar("param", Hibernate.TIMESTAMP).uniqueResult(); return new DateTime(timestamp);

我使用注册自定义函数的自定义方言:

包de.enerko.aaw2.persistence.dialogue

import java.sql.Types;

import org.hibernate.dialect.Oracle10gDialect;
import org.hibernate.dialect.function.VarArgsSQLFunction;
import org.hibernate.type.StandardBasicTypes;

public class OracleSpatialDialect extends Oracle10gDialect {
    public OracleSpatialDialect() {
        this.registerColumnType(Types.OTHER, "MDSYS.SDO_GEOMETRY");
        this.registerFunction("add_days", new VarArgsSQLFunction(StandardBasicTypes.DATE, "", "+", ""));
    }
}
在persistence.xml或任何用于构建实体管理器的技术中指定它:

<property name="hibernate.dialect" value="OracleSpatialDialect" />
希望有帮助

干杯,
Michael。

Jijo希望使用条件查询…而不是简单的SQL查询。实施这一点没什么大不了的。
builder.function("add_days", Date.class, builder.currentDate(), builder.literal(1))