JPA Tabelle automatisch erstellen.

bnr

Mitglied
Hallo,

ich beschäftige mich im Moment mit JPA und habe dort auch direkt eine Frage. Soweit ich weiß, werden die Tabellen für die Datenbank automatisch generiert, wenn ein Eintrag in der persistente.xml eingetragen wurde

Code:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="ds" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.detection.smiths.eapcfg.server.City</class>
    <class>com.detection.smiths.eapcfg.server.Country</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
      <property name="hibernate.hbm2dll.auto" value="create-drop"/>
      <property name="hibernate.connection.username" value="sa"/>
      <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.connection.url" value="jdbc:hsqldb:hsql://localhost/isomorphic"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.format_sql" value="true"/>
    </properties>
  </persistence-unit>
</persistence>

So wie ich dies sehe sollte dies ausreichen!. Wenn ich nun aus einem funktionierenden Beispiel-Eclipse Projekt, den DB-Ordner lösche und die Applikation starte, so erstellt er zwar ein Script für die Generierung der Tabellen, jedoch nur die Standard.

Code:
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 10

Es wurden keine Tabellen generiert. Vor dem Löschen des DB-Ordner war folgendes in dem Scriptfile.
Code:
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE MEMORY TABLE FLATTENEDBEANS_ADDRESS(ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,LINE1 VARCHAR(255),LINE2 VARCHAR(255),CITY VARCHAR(255),STATE VARCHAR(255),ZIP VARCHAR(255),COUNTRY VARCHAR(255))
CREATE MEMORY TABLE FLATTENEDBEANS_FLATUSER(USERID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,FIRSTNAME VARCHAR(255),SURNAME VARCHAR(255),EMAIL VARCHAR(255),ADDRESSID BIGINT,CONSTRAINT SYS_CT_100 UNIQUE(ADDRESSID),CONSTRAINT FKE83AE563ABBAEDF FOREIGN KEY(ADDRESSID) REFERENCES FLATTENEDBEANS_ADDRESS(ID))
......

Leider habe ich in meinem smartGWT Enterprise Editon Projekt leider keine Option JPA=>Generale Table.

Wo liegt das Problem? Hat jemand einen Ansatz.
 
Mmmh,

jetzt geht es auf einmal, ohne dass ich was geändert habe? Lag bestimmt am Neustadt des Computers ;-) .
In den Logs, DB und Skripten stehen nun die Informationen, die auch dort stehen sollen.

Es funktioniert!
 
Zurück