私はHibernate 4.3.8.Final、Primefaces 6.0、およびMySQL Database 5.7.13で作業しています。 私はこのような構造を持つデータベース内のテーブルがあります。SQLで間違った日付選択
:私は、以下の機能を持っている私のJava Beanではselect * from rents
rent_code | rent_daystart | rent_dayend
1 | 2016-11-30 16:03:00.0 | 2016-12-01 16:03:00.0
:
CREATE TABLE `rents` (
`rent_code` INT NOT NULL AUTO_INCREMENT,
`rent_daystart` datetime default NULL,
`rent_dayend` datetime default NULL,
PRIMARY KEY (`rent_code`)
) ENGINE = innodb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
し、次のSQLでリスで抽出し、以下のデータを
public List<Object> getRents(java.util.Date iniDate, java.util.Date endDate){
String SQL="select rent_code from rents where rent_daystart < :inidate and rent_dayend > :enddate";
List<Object> allRecords = null;
Session sesion=HibernateUtil.getSessionFactory().openSession();
try {
sesion.beginTransaction();
Query query = sesion.createSQLQuery(SQL).setDate("inidate", iniDate).setDate("enddate", endDate);
allRecords = query.list();
sesion.getTransaction().commit();
sesion.close();
}
catch (HibernateException he) {
//exception control code
};
return allRecords;
}
ウェブAPPデバッグを実行し、その機能が受け取る日付は次のとおりです。
**inidate** = 'Wed Nov 30 17:54:00 CET 2016'
**enddate** = 'Wed Nov 30 18:54:00 CET 2016'
そして、NO RECORD AT ALLを返します。
select rent_code from rents where rent_daystart < '2016-11-30 17:54:00' and rent_dayend > '2016-11-30 18:54:00'
それは1つのレコードが返されます、私は方法がリスに同じSQLを実行した場合
。
これはデータ型の問題などと思われますが、Webで調査した結果、私には分かりません。
私を助けてもらえますか?
ありがとうございます!
ロギングフレームワークを使用している場合は、Hibernate [SQLレベルロギング](http://stackoverflow.com/a/2536835/1255737)をオンにして、実際にクエリを実行しているかどうかを確認してください。 – rmlan