Ricerca…


introduzione

Ci sono degli scenari quando si ha a che fare con il livello di servizio in liferay, quando abbiamo bisogno di interrogare il database con troppe clausole o trattare con più tabelle. In questi casi, usiamo una delle seguenti:

1) Query dinamica (wrapper su API criteri Hibernate)

2) query SQL personalizzate

Osservazioni

Riferimenti:

  1. SQL personalizzato
  2. Query dinamica

Utilizzo della query dinamica in Liferay

Per la maggior parte degli scenari che coinvolgono entità dal livello di servizio, possiamo fare con le chiamate di servizio predefinite, con l'aiuto anche dei cercatori. Per scenari semplici che coinvolgono più entità, ci muoviamo verso l'utilizzo di Dynamic query API.Questa è un'API wrapper per l'API Criteria utilizzata in Hibernate.Può essere utilizzato per i casi, in cui è necessario generare query dinamiche, che non è di natura molto complessa, utilizzando diversi costrutti dell'API. Per cominciare, alcuni dei costrutti più comunemente utilizzati sono: DynamicQueryFactoryUtil per la costruzione di query

RestrictionsFactoryUtil -Usato per fornire restrizioni cioè campi per il confronto con un certo valore per restringere i risultati corrispondenti a un determinato valore o all'interno di un intervallo, ecc.

ProjectionFactoryUtil -Usato per fornire proiezioni per ottenere campi che faranno parte del risultato di ricerca, cioè invece di fornire l'intera entità, fornirà solo determinati campi o applicherà la funzione di aggregazione (come min.max, avg) sullo stesso.

PropertyFactoryUtil -Usato per il confronto di alcune proprietà dalla classe di entità per fare principalmente comparsione con altri campi da una query

L'implementazione di queste classi è presente nel pacchetto dao.orm.jpa con tutti i metodi disponibili



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow