私が取り組んでいるプロジェクトには、JPA 2.0(Hibernate 4実装)とSQL Server2008R2のセットアップがあります。
SQLビューからいくつかのデータを選択する必要があります。これを行うために、ネイティブクエリを使用しますが、NVARCHARフィールドでいくつかの問題が発生しました。基本的に、このコードを使用する場合:
String sql = "SELECT v.text_field as address FROM SOME_CUSTOM_VIEW v
Query q = entityManager.createNativeQuery(sql,"ItemDetailsMapping");
List<Object[]> result = q.getResultList();
ItemDetailsMappingは次のように宣言されます。
@SqlResultSetMapping(name = "ItemDetailsMapping", columns = { @ColumnResult(name = "address") })
次のような例外が発生します。
org.springframework.orm.hibernate3.HibernateSystemException: No Dialect mapping for JDBC type: -9; nested exception is org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
タイプ-9は実際にはNVARCHARタイプであり、アプリケーション全体で広く使用されており、非ネイティブクエリを使用している場合は完全に機能します。ネイティブクエリで機能しないのはなぜですか?カスタム方言を使ってタイプを登録しましたが、まだ機能していません。
あなたの助けをどうもありがとう