私はdateTimeの型の列を持つテーブルを持っています(私はSQL Serverを使用しています)。私は、dateTime列でテーブルを照会したいと思います。 dateTime列に同じ日付またはそれ以降の行が必要ですが、日付をパラメータとして渡したいとします。要するに、dateTimeは指定された日付以上でなければなりません。JPA CriteriaBuilderで時間型を指定する方法は?
問題は、基準APIを使用してDateオブジェクトを使用してクエリを実行しようとすると、翌日からの行しか提供されないということです。私はそれが同じミリ秒またはそれ以降の行を見つけることを試みると思っています。 JPAクエリ言語では、パラメータの一時的な型(setParameter( "dateColumn"、myDate、Temporal.DATE))を指定できますが、CriteriaBuilder APIで類似のものは見つかりません。助言がありますか?私はDataNucleusのJPA
@Entity
public class A
{
@Id
Long id;
@Temporal(TemporalType.DATE)
Date date;
}
と以下のクラスを実行する場合、これはDATE列に格納されている日付を持っているまあ
cb.greaterThanOrEqualTo(r.<Date>get(fieldName), beginDate));
どれ実装が「dateColumn」が指定されている方法を知って、それに応じてクエリを生成する必要があります。だから、生成されたSQLをプリントアウトしないのはなぜですか? – DataNucleus
生成されたSQLは次のようなものです:dateColumn> =?1 org.hibernate.typeのロギングを有効にすると、このパラメータは実際には日付であることがわかります。問題は、日付オブジェクトが時間、分、秒、およびミリ秒も含むため、日付オブジェクトがあまりにも「正確」であることです。私は日付から不要な部分を削除して修正することができましたが、JPA CriteriaBuilderを使って自動的に行うことができるかどうかは不思議でした。 – palto