0

JPA Criteria Query hibernate-jpa-2.0-api (1.0.1.Final) を使用しています。

currentDate() + x基準クエリ (sysdate + 任意の値 (x) 指定) を使用してデータベースから取得したい。

cb.currentDate()この目的のためにどのように使用できますか。

4

2 に答える 2

0

カスタム関数を登録するカスタム方言を使用します。

パッケージ de.enerko.aaw2.persistence.dialect;

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" />

そしてそれを次のように使用するよりも:

builder.function("add_days", Date.class, builder.currentDate(), builder.literal(1))

それが役立つことを願っています。

乾杯、マイケル。

于 2013-10-28T11:14:17.197 に答える