你如何在实体类决定把JPA NamedQuery注释吗?
-
18-09-2019 - |
题
说我有一个顾客 - CustomerOrder一对许多与CustomerOrder双向关系保持每个订单的总价值
。如果我有一个查询查找所有订单的总价值为一个特定的客户:
select SUM(o.orderValue) from CustomerOrder o where o.customer = :customer
不要紧,在实体类,这是注释?为什么你会把它放进一个或另一个?
解决方案
不要紧,在实体类,这是注释?
从技术角度看,不要紧,你将使用name
的@NamedQuery
来调用它。
为什么你会把它放进一个或另一个?
但是,从“逻辑”点,把其中“天然”属于一定缓解维持@NamedQuery
。在你的榜样,我会把查询的CustomerOrder
实体,因为查询的是关于寻找CustomerOrder
,这仅仅是在那里我希望找到它,如果我不得不去寻找它。
其他提示
没关系。
总的原则是把它放在它属于逻辑。在你的情况 - 这最好是CustomerOrder
把它们应在persistence.xml被宣布为XML映射文件。看到这个伟大的链接:阿尔扬-tijms.omnifaces.org/2010/09/where-to-put-named-queries-in-jpa
查询的很多不“自然”属于与实体(和进一步您必须修改实体代码,如果你把它们放在那里,每次你需要一个新的查询)。
不隶属于 StackOverflow