liferay
Dynamische en aangepaste SQL-query gebruiken in Liferay
Zoeken…
Invoering
Er zijn scenario's bij het omgaan met de servicelaag in liferay, wanneer we de database met te veel clausules moeten doorzoeken of met meerdere tabellen moeten werken. In dergelijke gevallen gebruiken we een van de volgende:
1) Dynamische zoekopdracht (wrapper op API voor slaapstandcriteria)
2) Aangepaste SQL-query's
Opmerkingen
Referenties:
Dynamische query gebruiken in Liferay
Voor de meeste scenario's waarbij entiteiten uit de servicelaag betrokken zijn, kunnen we het doen met de standaardserviceaanroepen, ook met wat hulp van de vinders. Voor eenvoudige scenario's waarbij meerdere entiteiten betrokken zijn, gaan we over naar het gebruik van de dynamische query-API. Dit is een wrapper-API voor de Criteria API die wordt gebruikt in Hibernate. Het kan worden gebruikt voor gevallen waarin we dynamische query's moeten genereren, die niet erg complex van aard zijn, met behulp van verschillende constructies uit de API. Om te beginnen zijn enkele van de meest gebruikte constructen: DynamicQueryFactoryUtil voor het construeren van query
RestrictionsFactoryUtil FactoryUtil -Gebruikt voor het verstrekken van beperkingen ter vergelijking voor een bepaalde waarde om de resultaten te verfijnen die overeenkomen met een bepaalde waarde of binnen een bereik, enz.
ProjectionFactoryUtil -Gebruikt voor het verstrekken van projecties om velden te krijgen die deel zullen uitmaken van het zoekresultaat, dwz dat in plaats van de hele entiteit te verstrekken, alleen bepaalde velden zal verschaffen of een aggregratiefunctie (zoals min.max, avg) daarop zal toepassen.
PropertyFactoryUtil -Gebruikt voor vergelijking van enkele eigenschap uit de entiteitsklasse om meestal vergelijking te doen met andere velden uit een query
De implementatie van deze klassen is aanwezig in het dao.orm.jpa-pakket met alle beschikbare methoden