9 Stimmen

Hibernate JPA create table type=InnoDB Problem

Ich habe ein EJB-Projekt auf JBoss mit einigen Entitätsklassen bereitgestellt.

Sobald ich die EJB einsetze, gibt Jboss mir diese Ausnahme:

create table service_db (id integer not null auto_increment, ipAddress varchar(255),      
primary key (id)) type=InnoDB
Unsuccessful: create table service_db (id integer not null auto_increment, 
ipAddress varchar(255), primary key (id)) type=InnoDB
2011-08-17 11:38:59,997 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1....

Müsste es nicht heißen engine=InnoDB anstelle von Typ? Ich habe versucht, diese Anweisung in mysql auszuführen, ohne Erfolg (gleiche Fehlermeldung). Wenn ich type entferne oder durch engine ersetze, funktioniert es.

Meine Frage ist, wie kann ich das ändern?

Hier ist meine persistance.xml (für den Fall, dass es wichtig ist)

<?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="default">

    <jta-data-source>java:/DUMMY_DS</jta-data-source>
    <properties>
        <property name="hibernate.hbm2ddl.auto" value="create" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />
    </properties>

</persistence-unit>

und für den Fall, dass die Xml-Datei der Datenquelle wichtig ist:

<datasources>
 <local-tx-datasource>
  <jndi-name>DUMMY_DS</jndi-name>

   <connection-url>jdbc:mysql://localhost/cargosoft</connection-url>
   <driver-class>com.mysql.jdbc.Driver</driver-class>
   <user-name>hauke</user-name>
   <password>******</password>
   <min-pool-size>5</min-pool-size>
   <max-pool-size>20</max-pool-size>
   <idle-timeout-minutes>10</idle-timeout-minutes>
   <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>     
   <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
  </local-tx-datasource>
</datasources>

Vielen Dank für Ihre Hilfe.

Hauke

50voto

Vlad Punkte 10299

Utilice MySQL5InnoDBDialect stattdessen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X