Domanda

dire che ho un cliente - OrdineCliente uno-a-molti bidirezionale con l'OrdineCliente tenendo il valore totale di ogni ordine

.

Se avessi una query per trovare il valore totale di tutti gli ordini di un particolare cliente:

select SUM(o.orderValue) from CustomerOrder o where o.customer = :customer

Ha importanza in cui classe di entità tale viene annotato? Perché si metterlo in uno o l'altro?

È stato utile?

Soluzione

  

Ha importanza in cui classe di entità tale viene annotato?

Da un punto di vista tecnico, non importa come si utilizzerà il name di un @NamedQuery chiamarlo.

  

Perché si metterlo in uno o l'altro?

Ma, da un punto "logico" di vista, mettendo il @NamedQuery dove viene "naturalmente" appartiene sicuramente facilitare la manutenzione. Nel tuo esempio, io metterei la query nell'entità CustomerOrder perché la query è di trovare CustomerOrder, questo è proprio dove mi aspetto di trovarlo se dovessi cercarlo.

Altri suggerimenti

Non importa. Il principio generale è quello di mettere in cui essa appartiene logicamente. Nel tuo caso - che sarebbe meglio essere in CustomerOrder

metterli nel file di mapping XML che deve essere menzionata nell'elenco persistence.xml. Vedere questo grande link: Arjan -tijms.omnifaces.org/2010/09/where-to-put-named-queries-in-jpa

Un sacco di query non 'naturalmente' appartengono con l'entità (e in seguito si deve modificare il codice entità, se li metti lì, ogni volta che si ha bisogno di una nuova query).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top