私が得るエラー:
ERROR 42821: Columns of type 'BOOLEAN' cannot hold values of type 'INTEGER'.
JPQLクエリの場合:
SELECT b.id FROM Bar b WHERE b.latest = true
どうやらHibernateがブールフィールド(つまり「最新」)をJavaDB / Derbyの整数列にマップするためです。ただし、これは列がJPQLでアクセスされる場合にのみ発生します。CriteriaAPIを使用した場合も同じ結果になります。
Hibernateはorg.hibernate.dialect.DerbyDialectに設定されており、ドライバーはorg.apache.derby.jdbc.EmbeddedDriverに設定されています。
他のバージョンのJDBCドライバーでも同じ結果になります。
おそらく回避策は、列を「Y」と「N」を含む単一の文字にマップすることです。しかし、私はむしろそれをきちんとやりたいです。
誰かもこの問題に遭遇しましたか?