Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

RapidClipse bietet mit dem JPA-SQL Editor ein mächtiges Tool für die Erstellung von benutzerdefinierten Abfragen auf Basis von JPA. Die Syntax von JPA-SQL lehnt sich an SQL an und ist somit leicht erlernbar. JPA-SQL ist eine reine Metasprache. D.h., die in JPA-SQL formulierten Abfragen werden nicht direkt an eine Datenbank versendet, sondern in Javacode auf Basis der JPA Criteria API umgewandelt. Erst zur Laufzeit werden die nativen SQL-Statements passend für die entsprechend angebundene Datenbank erzeugt und abgesetzt. 

Vorteile im Vergleich zur Verwendung von plain SQL-Strings:

  • SQL-ähnliche Syntax und Codestruktur
  • Übersichtlicher
  • Typsicher
  • Beliebige Reihenfolge der Statements
  • IDE-Unterstützung
    • Autovervollständigung - Erkennung von Schlüsselwörter, Operatoren und Entities 
    • Syntax-Highlighting
    • Refactoring
    • debuggbar (generierter JPA Criteria Code)
  • Query-Methode im DAO wird automatisch generiert
  • Datenbankunabhängig

Vorteile im Vergleich zur direkten Verwendung der JPA Criteria API:

  • SQL-ähnliche Syntax und Codestruktur
  • Übersichtlicher
  • Deutlich geringere Komplexität
  • Leicht erlernbar


  1. Klicken Sie im Project Management > Data Access das DAO an, über das Sie eine Datenbankabfrage durchführen möchten, z.B. CustomerDAO.java.
  2. Drücken Sie Strg + Shift und wählen Sie in der folgenden Autovervollständigung query - create new query aus.
  3. Geben Sie bei der generierten Methode einen geeigneten Methodennamen an, z.B. findAllCustomer.

    findAllCustomer()
    {
    	select * from 
    }
  4. Geben Sie nach dem Schlüsselwort from > C ein, drücken Sie Strg + Shift und wählen Sie Customer aus.
  5. Klicken Sie auf Speichern.


Ergebnis:
  • Queries

    import com.company.test.entities.Customer
    
    findAllCustomer()
    {
    	select * from Customer
    }
  • Java - Generierte Java Code auf Basis der JPA Criteria API. Zu der Query-Methode werden auch die notwendigen Imports generiert. 

    /**
     * @queryMethod Do not edit, method is generated by editor!
     */
    public List<Customer> findAllCustomer() {
    	EntityManager entityManager = em();
    
    	CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    
    	CriteriaQuery<Customer> criteriaQuery = criteriaBuilder.createQuery(Customer.class);
    
    	Root<Customer> root = criteriaQuery.from(Customer.class);
    
    	TypedQuery<Customer> query = entityManager.createQuery(criteriaQuery);
    	return query.getResultList();
    }
Hinweis:
  • Generierten Code editieren - Die Generierung des Java JPA Criteria Codes erfolgt unidirektional. D.h., Änderungen dürfen nur im JPA-SQL Code vorgenommen werden. Der generierte Java JPA Criteria Code darf nicht editiert werden.
  • Mehrere Query-Methoden - In einer DAO Klasse können sich beliebig viele Query-Methoden befinden.

    import com.company.test.entities.Customer
    findAllCustomer()
    {
    	select * from Customer 
    }
    
    
    findCustomerByID()
    {
    	select * from Customer where customerid = "BOLID"
    }

JPA-SQL Sprach-Spezifikation

  • No labels