是否可以将实体的命名查询移动到另一个类

时间:2014-02-21 10:11:52

标签: jpa entity named-query

我有一个名为Client的实体,它有一些命名查询和本机命名查询。我想要做的是,我想将这个命名查询移动到另一个类。为此,我想通过另一个类ClientQuery扩展Client实体。并将所有命名的本机查询移动到该类。是否可以这样做?

客户CLASS

@XmlRootElement(name = "CLIENT_DETAILS")
@XmlAccessorType(XmlAccessType.FIELD)
@Entity
@NamedQueries({
    @NamedQuery(name = Client.GET_CLIENT_BYLANGID,
    query = "select T from Client T where T.clientPK.langId=:langId")
})
public class Client implements Serializable {
public static final String GET_CLIENT_BYLANGID = "Client.getClientByLangId";

2 个答案:

答案 0 :(得分:1)

据我了解,您想知道将@NamedQuery移出Entityclass到非实体类是否正确。

我已经快速检查了规范,但没有看到任何限制。另外,我试图在<named-query>元素之外放置一个<entity>元素的mapping.xml,它是xml有效的,所以它是合法的。

答案 1 :(得分:0)

如果将@NamedQuery移动到不是不能作为hibernate工作的实体的类中,则只扫描作为实体的类。您会发现找不到NamedQuery之类的东西,将它们放在更多引用它们的实体中也是一种很好的做法。