使用AttributeConverter转换的WHERE子句中的JPA NamedQuery with Object

时间:2016-12-17 16:32:05

标签: hibernate jpa named-query

将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上)

2 个答案:

答案 0 :(得分:0)

参数必须是XYZ类型而不是String。使用转换器方法获取所需字符串值的相应实例XYZ。

答案 1 :(得分:0)

在其他地方添加一些更改后,问题不再出现。所以我的结论是,它与转换后的属性相关,因为参数似乎是错误的。

尽管如此,

相关问题