私のプロジェクトでSpringboot 1.3.5.RELEASE、SpringDataJpa 1.9.4.RELEASE、Hibernate 4.3.11.FINALを使用してMSSQL Server 2014にアクセスしています。私のapplication.properties私は、org.hibernate.dialect.SQLServer2012Dialectである最新の方言を設定し、手動でインポートしたMicrosoft JDBC Driver com.microsoft.sqlserver.jdbc.SQLServerDriver(sqljdbc4.jar)を使用しています。Hibernate + SQL Server - タイムスタンプを日付にキャストエラー
問題は、createdAt列(Date(YYYY-MM-DD)としてキャストするタイムスタンプ)を使用して簡単なクエリを取得することです。だから、私は取引エンティティで、以下の名前のクエリを持っている:
SELECT new myproject.wrapper.TrendingChartData(cast(createdAt as date),
liveVerifyCode, count(*))
FROM Transaction t
WHERE t.bucket.id = :bucketId
GROUP BY cast(createdAt as date), liveVerifyCode
しかし、私の日付を取得するようなものされています
DATE | Code | Count
2016-06-10| 2 | 1
2016-06-10| 1 | 1
2016-06-10| 2 | 1
2016-06-10| 1 | 1
2016-06-10| 2 | 1
2016-06-10| 2 | 1
2016-06-10| 1 | 1
2016-06-10| 1 | 1
2016-06-10| 1 | 1
は、だから、それが結果をキャストだと思われるが、それはグループ化をキャストしています。私は自分のSQLのトレースを生成しています:
select cast(transactio0_.createdAt as datetime) as col_0_0_,
transactio0_.liveVerifyCode as col_1_0_,
count(*) as col_2_0_
from TransactionData transactio0_
where transactio0_.bucket_id=?
group by cast(transactio0_.createdAt as datetime), transactio0_.liveVerifyCode
したがって、日付の代わりにdatetimeをキャストします。上記の同じクエリを実行するが、キーワードdatetimeを日付に変更すると、MSSQLで完全に機能します...これはHibernate MSSQL Dialectと関係があると思われます。
あなたは私を助ける考えがありますか?
ありがとうございました!この問題を有していてもよく、将来の人々のために