Schreiben der QueryDSL-Prädikatabfrage für eine auf einer Beziehung basierende Abfrage

8

Ich verwende Spring-Daten, QueryDSL und MySQL.

Hauptziel der Frage ist, wie man eine solche Abfrage in QueryDSL-Art durchführt. Ein gegebenes Beispiel ist nur ein einfaches Beispiel, um eine Idee zu geben.

Sagen Sie zum Beispiel, es gibt zwei Tabellen Mitarbeiter und Zertifikat. Beziehung zwischen zwei ist EIN (Mitarbeiter) zu VIELEN (Zertifikat)

Nachfolgend finden Sie Tabellen,

%Vor%

Was sollte das QueryDSL-Prädikat für

sein?
  

Zurückgeben aller Mitarbeiter mit Name enthält (in Vornamen und Nachname) und aus diesem Ergebnis, deren Zertifizierung zwischen Datum 22-12-2014 bis 22-12-2015

Ich habe es versucht, aber ich konnte nicht herausfinden, wie ich jedes Zertifikat jedes Mitarbeiters auf QueryDSL-Art durchlaufen und die Liste der Angestellten zurückgeben kann.

Ihre Antwort wird sehr geschätzt werden !!

BEARBEITEN

Es folgen die Entitäten

%Vor%     
Prashant Shilimkar 02.11.2016, 11:45
quelle

2 Antworten

6

Am einfachsten ist es, es umzukehren und nach Zertifikaten zu suchen, was einfach ist und Sie können den Mitarbeiter dann von den zurückgegebenen Zertifikaten abholen.

%Vor%

Wenn Sie nach Mitarbeitern suchen möchten, versuchen Sie Folgendes, was gegen QueryDSL Version 4.1.3 ist.

%Vor%     
Alan Hay 02.11.2016, 18:37
quelle
1

Da dies mit einem MySQL-Tag gepostet wurde, beantworte ich die gewünschte Abfrage (für andere) und hoffe dann, dass Sie den QueryDSL-Code daraus herausfinden können:

%Vor%

Von der Befehlszeile mit der Ausgabe:

%Vor%

Entschuldigung, Sie kennen sich mit QueryDSL nicht aus, daher müssen Sie Ihren Code ändern, damit er mit dieser Abfrage übereinstimmt.

Hier ist das Schema, mit dem ich das getestet habe:

%Vor%     
Ligemer 08.11.2016 19:52
quelle

Tags und Links