2011-08-03 33 views
1

如何避免将FQCN放入SELECT NEW ...JPA 2.0:如何避免`SELECT NEW full.class.Name`中的完整类名?

包在重构过程中经常发生变化,这可能会导致麻烦。

不确定我是否可以为JPA做些什么;我也对Hibernate 3.6解决方案感到满意(Ejb3Configuration)。

请注意,SELECT NEW中使用的类不是实体,因此<class>persistence.xml中的标准技巧不起作用(YMMV)。

回答

2

根据规范,构造函数的名称必须是完全限定的,JPA规范4.8.2。所以不,你无法避免它。为什么你不能只使用MyClass.class.getName()并因此应付重构?

+0

我已经命名查询,并没有意识到我也可以在那里使用静态调用。 –

0

不是直接的答案,但真正的重构也会改变查询中的包。如果这阻碍了你的重构,你可能会考虑为你的重构选择一个更好的工具。