JPA NamedQueryをAttributeConverterと組み合わせて使用すると、少し問題が発生します。JPA AttributeConverterを使用して変換されたWHERE句のObjectを持つNamedQuery
基本的には、XYZ型のフィールドxyzを持つエンティティがあります。これはAttributeConverter<XYZ, String>
を使用して変換されるため、値はデータベースのVARCHARとして格納されます。これはうまく動作します。しかし、私はNamedQueryを使用してEntity.xyzを照会する方法についてはかなりよく分からない:
@NamedQuery(name="Entity.testQuery", query="SELECT e FROM Entity e WHERE e.xyz=:xyz
私はこの方法でそれをしようとすると、起動時にクラッシュを休止します。それは正しいことではありません。 HibernateにWHERE e.xyz=:xyzAsString
のような "変換されていない"(すなわちString)値を比較するように指示する方法はありますか?
敬具 ジョナス
EDIT:それは存在しないエンティティXYZに登録しようとしてe.xyzを照会しようとするため、私が思うに、クラッシュを休止。多分、これはバグです(私は、Hibernate 4.3を使用するWildFly 9.2を利用しています)
なぜクラッシュするのですか?あなたに何かを伝えるのが奇妙に思えるので、例外とメッセージを表示してください。クエリにはパラメータが含まれているため、クエリが実行されるときにのみ型が必要です。 – Chris