Ich schreibe gerade für eine keine Webanwendung die Schnittstelle zur Datenbank bzw. zu den Repository-Klassen. Das ganze läuft über das Spring Data JPA
Die Webanwendung soll über die Repository-Klassen Objekte in der Datenbank suchen können. Also z.B.
userRepository.findByLastname(...)
carRepository.findByLicencePlateId()
Es ist aber schon klar, dass es nicht nur bei diesen beiden Abfragen bleiben wird. Deswegen würde ich gerne die Schnittstelle zwischen Webanwendung und den Repository-Klassen stabil halten.
Am liebste wärs mir wenn in der Webanwendung nur eine Art WHERE-clause formuliert wird, die dann durch die Repository Klasse ausgeführt wird. Dann brauch ich für alle zeiten nicht jedesmal eine neue Finder Methode zu definieren, wenn die Webanwendung eine neue Anforderung hat.
userRepository.find(...where...)
Plain-SQL als Where clause möchte ich aber nicht nehmen (injection Problem), also eine WHERE-clause in Form einer Criteria oder sowas wäre mir lieber . Hauptsache aber ist, dass in der Webanwendung keine direkte Datenbankanbindung über EntityManager, etc. existiert. Die Wenanwendung soll nur über die Repository kommunizieren.
Wie könnte man das machen?
Die Webanwendung soll über die Repository-Klassen Objekte in der Datenbank suchen können. Also z.B.
userRepository.findByLastname(...)
carRepository.findByLicencePlateId()
Es ist aber schon klar, dass es nicht nur bei diesen beiden Abfragen bleiben wird. Deswegen würde ich gerne die Schnittstelle zwischen Webanwendung und den Repository-Klassen stabil halten.
Am liebste wärs mir wenn in der Webanwendung nur eine Art WHERE-clause formuliert wird, die dann durch die Repository Klasse ausgeführt wird. Dann brauch ich für alle zeiten nicht jedesmal eine neue Finder Methode zu definieren, wenn die Webanwendung eine neue Anforderung hat.
userRepository.find(...where...)
Plain-SQL als Where clause möchte ich aber nicht nehmen (injection Problem), also eine WHERE-clause in Form einer Criteria oder sowas wäre mir lieber . Hauptsache aber ist, dass in der Webanwendung keine direkte Datenbankanbindung über EntityManager, etc. existiert. Die Wenanwendung soll nur über die Repository kommunizieren.
Wie könnte man das machen?