# [Hibernate] SQL Syntax-Error



## Pippl (19. Jun 2011)

Hallo,

ich hab eine kleines Problem mit Hibernate. Eine Verbindung mit der Datenbank ist möglich, aber sobald ich mir das Schema der Datenbank anschauen will kommt folgende Fehlermeldung:


```
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 '-testing  like 'Features'' at line 1
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
	at com.mysql.jdbc.Util.getInstance(Util.java:384)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2275)
	at org.hibernate.cfg.reveng.dialect.MySQLMetaDataDialect.getSuggestedPrimaryKeyStrategyName(MySQLMetaDataDialect.java:30)
	at org.hibernate.cfg.reveng.JDBCReader.processPrimaryKey(JDBCReader.java:429)
	at org.hibernate.cfg.reveng.JDBCReader.readDatabaseSchema(JDBCReader.java:86)
	at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter$2.execute(LazyDatabaseSchemaWorkbenchAdapter.java:117)
	at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63)
	at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:72)
	at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.readDatabaseSchema(LazyDatabaseSchemaWorkbenchAdapter.java:106)
	at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.getChildren(LazyDatabaseSchemaWorkbenchAdapter.java:63)
	at org.hibernate.eclipse.console.workbench.BasicWorkbenchAdapter.fetchDeferredChildren(BasicWorkbenchAdapter.java:106)
	at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:235)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
```

Mein hibernate.cfg.xml:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.username">username</property>
        <property name="connection.password">password</property>
        <property name="connection.url">jdbc:mysql://wp231.webpack.hosteurope.de:3306/db10550069-testing</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.show_sql">true</property>
    </session-factory>
</hibernate-configuration>[/XML]

Die verwendete Datenbank (MySQL5) hat 2 Tabellen (Features, Programs). Leider wird hier nur ein kleiner Teil der SQL-Abfrage ausgegeben - ansonsten würde ich vl auch selbst auf den Fehler kommen. Außerdem weiß ich nicht was was mit diesem SQL abgefragt werden soll.

Nach dieser Anleitung bin ich vorgegangen Hibernate Tools

Also mein Frage nun
1) Weiß wer was Hibernate hier machen will bzw. warum es nicht funktioniert?
2) Gibt es eine Möglichkeit die SQL Befehle vollständig ausgeben zu lassen?


----------



## maki (19. Jun 2011)

Hast du etwa einen Bindestrich in einem Entitynamen bzw Property?


----------



## Pippl (19. Jun 2011)

Den Bindestrich gibt es im Datenbanknamen. Diesen kann ich aber nicht entfernen da dieser von Hoster (HostEurope) vorgegeben ist. Ansonsten existiert noch kein Java-Code, nur die Konfiguration von Hibernate.

EDIT: Der Bindestrich funktioniert mit diesem Treiber aber ohne Probleme (in anderen Projekten verwendet).


----------

