2014-02-21 3 views
5

Ich habe eine Entität mit dem Namen Client, und es hat einige benannte Abfragen und native Abfragen benannt. Ich möchte diese benannten Abfragen in eine andere Klasse verschieben. Dafür möchte ich die Client-Entität um eine andere Klasse von ClientQuery erweitern. Verschieben Sie alle benannten systemeigenen Abfragen in diese Klasse. Ist es möglich?Ist es möglich, benannte Abfragen einer Entität in eine andere Klasse zu verschieben

Client-Klasse

@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"; 

Antwort

1

Wie ich verstehe, wollen Sie wissen, ob es richtig, die @NamedQuery aus dem entityClass zu einer Nicht-Entity-Klasse zu bewegen.

Ich habe schnell die Spezifikation überprüft und sah keine Einschränkungen darüber. Zusätzlich habe ich versucht, ein mapping.xml ein <named-query> Element außerhalb des <entity> Elements zu setzen und es ist xml-valid, also ist es legal.

0

Wenn Sie @NamedQuery in einer Klasse verschieben, die keine Entität ist, die nicht als Ruhezustand arbeitet, dann scannen Sie nur die Klassen, die Entitäten sind. Sie werden feststellen, dass etwas wie NamedQuery nicht gefunden wird. Es ist auch eine gute Methode, sie in der Entität zu haben, die mehr Bezug auf sie hat.