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:

  1. Aangepaste SQL
  2. Dynamische zoekopdracht

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



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow