【发布时间】:2016-12-17 16:32:04
【问题描述】:
将 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 比较像WHERE e.xyz=:xyzAsString 这样的“未转换”(即字符串)值?
最好的问候 乔纳斯
编辑:我认为,Hibernate 崩溃是因为它尝试将 e.xyz 查询为与不存在的实体 XYZ 的 JOIN。所以也许,这是一个错误(我在 WildFly 9.2 上,它使用 Hibernate 4.3)
【问题讨论】:
-
为什么会崩溃?显示您收到的异常和消息,因为不告诉您某些事情似乎很奇怪。查询包含一个参数,因此在执行查询时它应该只需要一个类型。
标签: hibernate jpa named-query