一つは、私はこれを変更するオプションを持っていけない、次のようになります。OracleのDATEおよび休止状態/ JPAマッピングOracle表の
@Column(name="REPORTING_PERIOD")
private long reportingPeriod;
@Temporal(TemporalType.DATE)
@Column(name="REPORT_DATE")
private Date reportDate; //java.util.Date
今、私たちは私のユニットテストを通過してみましょう: (私はリポジトリのための春のデータJPAを使用しています) 下の行は
REPORTING_PERIOD列でDBを照会しますSOPの入れReportingPeriod period1 = reportingPeriodRepository.findByMaxReportingPeriod();
assertNotNull(period1); // works fine and entity is fetched
System.out.println(period1.getReportDate());
アウトは2012-02-01である - 私は'01を使用して日付で直接問い合わせる場合は、今すぐデシベルの値から自動変換01 - 2月 - 12
に注意してください - 2月-12' 、私は以下のやっているように、私はどんな結果を得るいけない:
ReportingPeriod period2 = reportingPeriodRepository.findByReportDate(period1.getReportDate());
assertNotNull(period2);
お知らせすることを、私は成功し、前の文でフェッチ可能性が同じエンティティから日付フィールドを使用しています。
も、この作品:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
ReportingPeriod period3 = reportingPeriodRepository.findByReportDate(df.parse("2012-02-01"));
assertNotNull(period3);
デシベルの値が01・2月・12大歓迎されているとき、私はのparamとしてREPORTING_DATEで(もOKになりますHQLで)照会することができる方法上の任意の助け。
にデータベース形式と同じ形式を使用してデータを取得するかどうか、我々はあなたが使用しているフォーマットがに正しいかあなたがよろしい確認することができます文字列を 'Date'に解析しますか? 'DateFormat df = new SimpleDateFormat(" yyyy-MM-dd ");'を試すことができますか? –
@βнɛƨнǤʋяʋиɢ - いいえ、私は実際にそれを早くも試みましたが、うまくいきませんでした。不思議なことに、Hibernateはエラーを報告せず、結果だけを報告しません。 – SRK
クエリー( 'NamedQuery'またはCriteraクエリーまたはそれを使用しているもの)を教えてもらえますか?エラー/問題がクエリーまたはメソッドfindByReportDateにあります – esej