将JPA NamedQuery与AttributeConverter结合使用时遇到了一些问题。
基本上,我有一个实体,其字段xyz的类型为XYZ,使用AttributeConverter<XYZ, String>
进行转换,因此该值将作为VARCHAR存储在数据库中。这很好用。但是我不太确定如何使用NamedQuery查询Entity.xyz:
@NamedQuery(name="Entity.testQuery", query="SELECT e FROM Entity e WHERE e.xyz=:xyz
如果我以这种方式尝试,Hibernate在启动时崩溃。所以这不对。有没有办法告诉Hibernate比较&#34;未转换的&#34; (即字符串)值如WHERE e.xyz=:xyzAsString
?
祝你好运 乔纳斯
编辑:Hibernate崩溃,我认为,因为它试图将e.xyz作为JOIN查询,而实体XYZ并不存在。所以,也许,这是一个错误(我在使用Hibernate 4.3的WildFly 9.2上)
答案 0 :(得分:0)
参数必须是XYZ类型而不是String。使用转换器方法获取所需字符串值的相应实例XYZ。
答案 1 :(得分:0)
在其他地方添加一些更改后,问题不再出现。所以我的结论是,它与转换后的属性相关,因为参数似乎是错误的。
尽管如此,