User Tools

Site Tools


java:jpa

Erfahrungen

  • UPPER() und LOWER() funktionieren nicht mit LIKE. Lösung: where LOWER(c.name) = :name und q.setParameter(“name”, name.toLowerCase())

Hibernate

Links

Eigenheiten [3.3.2]

  • Hibernate ignoriert <table-generator>, wenn die Annotation auf GenerationType.SEQUENCE lautet, obwohl die ID passen würde
  • Hibernate interpretiert die allocationSize in der Form, dass die NextID mit der allocationSize multipliziert wird
  • Logged die Zugriffe auf die Sequence-Tabelle nicht mit dem gewöhnlichen SQL mit.
  • füllt wohl auch die Lazy-Collections nach einem EntityManager.refresh()

Links

DDL erzeugen

Quelle: http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29

Die DDL-Ausgaben bekommt man, in dem man weitere Properties in der persistence.xml setzt. Das Ausgabe-Verzeichnis muss vorhanden sein. EclipseLink versucht selbst die Datenbank zu erkennen, die Property eclipselink.target-database dürfte aber evtl. trotzdem hilfreich sein.

  <property name="eclipselink.ddl-generation.output-mode" value="both"/>
  <property name="eclipselink.application-location" value="/tmp"/>
  <property name="eclipselink.create-ddl-jdbc-file-name" value="create.sql"/>
  <property name="eclipselink.drop-ddl-jdbc-file-name" value="drop.sql"/>
  <property name="eclipselink.target-database" value="MySQL"/>

SQL Logging einschalten

  <property name="eclipselink.logging.level" value="FINE"/>
  <property name="eclipselink.logging.level.sql" value="FINE"/>
  <property name="eclipselink.logging.parameters" value="true"/>

OpenJPA

Links

Mapping Values

java/jpa.txt · Last modified: 2013/10/15 15:53 by hgoebl