2016-11-12 2 views
0

Ich habe eine Reihe von Tabellen, wo ich eine active_ind-Spalte pflegen und eine jpa-Entity zugeordnet haben.jpa schreibgeschützt aktive Datensätze

Wenn ich Abfragen schreiben Ich mag Dinge einfach zu halten und einfach tun: wählen d von Doktor wo ...

Statt: wählen d von Doktor wo d.activeInd = ‚A‘ und .. .

Ist es möglich, das "where d.activeInd = 'A'" mit Anmerkungen zu erreichen oder muss ich es immer in die where-Klausel einfügen? Es ist in Ordnung für eine einzelne Entität, aber wenn ich mich mit paar Tabellen verbinde, kann es mühsam werden.

+0

JPA bietet KEINE Anmerkungen an, um beliebige SQL-Segmente an Abfragen anzufügen. –

Antwort

0

Wenn Sie Hibernate als JPA-Anbieter verwenden, können Sie die Annotation @Filter von hibernate verwenden, um Entitäten automatisch in Abfragen herauszufiltern.

Wenn Sie jedoch an reinem JPA bleiben müssen, gibt es noch kein Äquivalent, obwohl es gewünscht wurde (https://java.net/jira/browse/JPA_SPEC-87).

+0

ok Ich denke, besser, nur Hibernate als jpa verwenden, da sie mehr Funktionen bieten. Danke –

+0

Sie können immer noch die @ Filter Annotation verwenden, auch wenn der Rest Ihres Codes JPA ist, bedeutet es nur, dass Ihr Code nicht 100% JPA kompatibel ist. – Kayaman

-1

Es ist möglich, JPA mit Spring zu verwenden, und es bietet eine DAO-Schnittstelle, die die Methode find (id) und findAll() haben. Sie können sogar Ihre eigene Methode mit den Feldern findByFirstNameAndLastName() erstellen.

Ich hoffe es hilft.

Verwandte Themen