MySQL JPA / MySQL - Fehler bei type=innoDB

prot

Mitglied
Hallo

Ich habe über XAMPP einen Server und eine MySQL - Datenbank laufen. Über phpMyAdmin habe ich eine Tabelle angelegt, in die ich nun mit der JPA - Schnittstelle Objekte schreiben will.

Hier erstmal die Fehlermeldung, die ich bekomme:
Code:
HTTP Status 500 - You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use near
'TYPE = innodb' at line 1 {stmnt 665204823 CREATE TABLE OPENJPA_SEQUENCE_TABLE 
(ID TINYINT NOT NULL, SEQUENCE_VALUE BIGINT, PRIMARY KEY (ID)) TYPE = innodb}
[code=1064, state=42000]

Zeile 2 im folgenden Code erzeugt diesen Error:
Code:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("webdev");
EntityManager em = emf.createEntityManager();

Ich habe jetzt schon ein wenig das Internet durchsucht und herausgefunden, dass TYPE = veraltet ist und stattdessen ENGINE verwendet wird. Bei der Erstellung der Datenbanktabelle habe ich jetzt nochmal nachgesehen und dort wird auch ENGINE = innoDB verwendet.

Ich weiß jetzt nicht, inwiefern ich meinen Code beeinflussen und diesen Fehler beheben kann. Für mich sieht es eher so aus, als ob meine JAR's veraltet sind und die noch mit TYPE anstatt mit ENGINE funktionieren. Einige davon habe ich zwar schon erneuert, aber es kann gut sein, dass noch ein paar alte drin sind.

Könnte das der Fehler sein?

Danke für die Hilfe

Gruß

prot
 

prot

Mitglied
Hallo

Was meinst du denn genau mit Query?

Wegen der Fehlersuche habe ich den Code soweit ausgeklammert, dass ich weder von der Datenbank auslese, noch etwas in sie reinschreibe. Es sind nur die beiden obigen Zeilen noch aktiv.

Hier die komplette Fehlermeldung:
Code:
<openjpa-1.0.2-r420667:627158 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TYPE = innodb' at line 1 {stmnt 1515663427 CREATE TABLE OPENJPA_SEQUENCE_TABLE (ID TINYINT NOT NULL, SEQUENCE_VALUE BIGINT, PRIMARY KEY (ID)) TYPE = innodb} [code=1064, state=42000]
    org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:549)
    org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:449)
    org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:170)
    org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:130)
    org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:188)
    org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
    org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
    org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
    org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
    project.servlets.Startseite.handleRequest(Startseite.java:29)
    project.servlets.Startseite.doGet(Startseite.java:63)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

org.apache.openjpa.lib.jdbc.ReportingSQLException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TYPE = innodb' at line 1 {stmnt 1515663427 CREATE TABLE OPENJPA_SEQUENCE_TABLE (ID TINYINT NOT NULL, SEQUENCE_VALUE BIGINT, PRIMARY KEY (ID)) TYPE = innodb} [code=1064, state=42000]
    org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
    org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57)
    org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:754)
    org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate(DelegatingStatement.java:114)
    org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1185)
    org.apache.openjpa.jdbc.schema.SchemaTool.createTable(SchemaTool.java:949)
    org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:526)
    org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:344)
    org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:321)
    org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:497)
    org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:449)
    org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:170)
    org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:130)
    org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:188)
    org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
    org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
    org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
    org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
    project.servlets.Startseite.handleRequest(Startseite.java:29)
    project.servlets.Startseite.doGet(Startseite.java:63)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Und hier noch mein Code:

Entitätsklasse:
Code:
package project.model;

import javax.persistence.*;

@Entity
@Table(name = "personeninfo")
public class Personeninfo {
   
    private long id;
    private String vorname;
    private String nachname;
    private String wohnort;
    private String hobby;
   
    public Personeninfo()
    {
       
    }
    public Personeninfo(int id, String vorname, String nachname, String wohnort, String hobby)
    {
        this.id = id;
        this.vorname = vorname;
        this.nachname = nachname;
        this.wohnort = wohnort;
        this.hobby = hobby;
    }
   
    @Id
    public void setId(long id)
    {
        this.id = id;
    }
    public long getId()
    {
        return id;
    }
   
    public void setVorname(String vorname)
    {
        this.vorname = vorname;
    }
    public String getVorname()
    {
        return vorname;
    }
   
    public void setNachname(String nachname)
    {
        this.nachname = nachname;
    }
    public String getNachname()
    {
        return nachname;
    }
   
    public void setWohnort(String wohnort)
    {
        this.wohnort = wohnort;
    }
    public String getWohnort()
    {
        return wohnort;
    }
   
    public void setHobby(String hobby)
    {
        this.hobby = hobby;
    }
    public String getHobby()
    {
        return hobby;
    }
   

}

persistence.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<persistence-unit name="webdev"
  transaction-type="RESOURCE_LOCAL"> 
  <provider>
   org.apache.openjpa.persistence.PersistenceProviderImpl
  </provider>
   
        <class>project.model.Personeninfo</class>
   
        <properties>
            <property name="openjpa.ConnectionURL" value="jdbc:mysql://host/webdev?characterEncoding=UTF-8" />
            <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
            <property name="openjpa.ConnectionUserName" value="root" />
            <property name="openjpa.ConnectionPassword" value="" />
            <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />           
        </properties>
    </persistence-unit>
</persistence>

Und in einem Servlet steht dann noch folgendes (alles andere ausgeklammert):

Code:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("webdev");
        EntityManager em = emf.createEntityManager();

Reichen diese Angaben?

Danke für die Hilfe.
 

Thallius

Top Contributor
Der Fehler sagt ganz klar aus, dass Du einen Fehler in Deiner sql query hast. Diese Query must du irgendwo absetzen.

Welchen String benutzt du um die Tabelle zu erstellen? Das ist der Query
 

prot

Mitglied
Ich erstelle die Tabelle nicht über Java, sondern direkt im Browser über phpMyAdmin. Dort kann ich einfach sagen, wie viele Spalten meine Tabelle haben soll und danach definiere ich jede Spalte (Typ, Länge,...).

phpMyAdmin legt mir die Tabelle dann an. Die SQL - Query, die dabei aufgrund meiner angegebenen Informationen generiert wird sieht so aus:

Code:
CREATE TABLE `webdev`.`personeninfo` ( `id` INT NOT NULL , `vorname` TEXT NOT NULL , `nachname` TEXT NOT NULL , `wohnort` TEXT NOT NULL , `hobby` TEXT NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;
 

Thallius

Top Contributor
Das ist mir zu hoch. Wenn die Tabelle schon existiert und du in deinem Java code nirgendwo versuchst die Tabelle zu erstellen, wie kommt er dann an diese Fehlermedlung...
 

prot

Mitglied
Danke erstmal für die Aufklärung.

Dann liegt also das Problem darin, dass ich mit diesem Befehl in der persistence.xml eine Tabelle erzeuge, die noch mit dem Befehl "TYPE" anstatt "ENGINE" arbeitet?
 

stg

Top Contributor
Möglich, aber mit Sicherheit kann ich dir das nicht sagen. Ich benutze selbst weder Open JPA noch Maria DB.

Jedenfalls wäre das erste, was ich an deiner Stelle prüfen würde, dass du auch den zu der DB version passenden JDBC Treiber verwendest.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
J Fehler bei mySQL Query Datenbankprogrammierung 19
B MySQL Fehler: Cannot open connection mit Tomcat7, Hibernate und MySQL Datenbankprogrammierung 4
Crashbreaker MySQL MySQL - Hibernate gibt Fehler aus Datenbankprogrammierung 25
H Fehler bei null-Datum in MySQL-DB Datenbankprogrammierung 2
M Update mysql Fehler ?? Datenbankprogrammierung 4
T Fehler bei Verbindungsaufbau zu MySql DB Datenbankprogrammierung 4
B MySql DELETE Anweisung gibt Fehler zurück Datenbankprogrammierung 7
D mySQL emullierte PreparedStatements haben Fehler unter Last Datenbankprogrammierung 3
E Fehler bei String-Insert in MySQL-DB Datenbankprogrammierung 8
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben