【发布时间】:2013-03-19 01:38:58
【问题描述】:
我在 SO 中环顾四周,但没有找到特定问题的答案。
有没有办法告诉 Hibernate 在执行查询时调用实体方法?
例如:
SELECT o.getDescription() from Order o WHERE o.id = :id
getDescription() 的实现是这样的:
public String getDescription(){
return getFormattedOrderTime() + " " + getOrderDetails().getDescription();
}
我知道在这个例子中这样的事情是不必要的。我创建这个例子只是为了说明我想要什么。
我只想知道查询中的调用是否完全可行,这样我就可以避免我必须做的巨大变通方法。
PS:解决方案是否特定于 Hibernate 并不重要。
附加信息:休眠版本:3.6.10.Final
【问题讨论】:
-
你是在使用 JPA 和 Hibernate 实现还是普通的 Hibernate?
-
我正在使用 JPA 和 Hibernate 实现,但如果你有一个解决方案,我愿意接受。我在这个项目中使用供应商特定的解决方案没有问题。
-
好吧,假设
formattedOrderTime和orderDetails是您实体的映射属性,您应该获取这些属性,然后调用您的order.getDescription()。 -
是的,这是我的第一个想法。我不认为它周围有任何东西,对吧?无论如何,我会把问题留在这里,以防有人有替代方案。谢谢路易吉
标签: java hibernate jakarta-ee hql jpql