我有一个名为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";
答案 0 :(得分:1)
据我了解,您想知道将@NamedQuery
移出Entityclass到非实体类是否正确。
我已经快速检查了规范,但没有看到任何限制。另外,我试图在<named-query>
元素之外放置一个<entity>
元素的mapping.xml,它是xml有效的,所以它是合法的。
答案 1 :(得分:0)
如果将@NamedQuery移动到不是不能作为hibernate工作的实体的类中,则只扫描作为实体的类。您会发现找不到NamedQuery之类的东西,将它们放在更多引用它们的实体中也是一种很好的做法。