# Problem mit Hibernate und Access



## marky8264 (13. Feb 2011)

Hallo,

ich versuche gerade mit Hibernate auf MS Access zu zugreifen. Leider bekomme ich dabei eine Exception die ich nicht ganz verstehe:

```
13:22:03,855 DEBUG SqlUtils:85 - Attempted to convert SQLException to SQLException. Leaving it alone. [SQLState: 37000; errorCode: -3551]
java.sql.SQLException: [Microsoft][ODBC-Treiber für Microsoft Access] Syntaxfehler in CREATE TABLE-Anweisung.
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
```

Hier ein Ausschntt aus meiner persistence.xml:
[XML]<property name="hibernate.hbm2ddl.auto" value="create"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.dialect" value="com.hxtt.support.hibernate.HxttAccessDialect"/>
            <property name="hibernate.connection.driver_class" value="sun.jdbc.odbc.JdbcOdbcDriver"/>
            <property name="hibernate.connection.url" value="jdbcdbc:tio"/>
            <property name="hibernate.connection.username" value=""/>
            <property name="hibernate.connection.password" value=""/>[/XML]
Ich hoffe jemand kann mir weiterhelfen.
mfg


----------



## gizmo (13. Feb 2011)

Was du machen willst, scheint so nicht unterstützt zu werden. Schau mal hier: objectissues: Hibernate 3 with Microsoft ms access 2000 odbc

Oder du verwendest anstelle des ODBC-Treibers den HXTT-Treiber: http://www.hxtt.com/hibernate.html


----------



## marky8264 (13. Feb 2011)

Erstmal danke für die Antwort.



gizmo hat gesagt.:


> Was du machen willst, scheint so nicht unterstützt zu werden. Schau mal hier: objectissues: Hibernate 3 with Microsoft ms access 2000 odbc


Wenn ich diesen Dialect verwende, dann bekomme ich eine andere Exception:

```
Caused by: org.hibernate.MappingException: Dialect does not support sequences
	at org.hibernate.dialect.Dialect.getSequenceNextValString(Dialect.java:652)
	at org.hibernate.id.SequenceGenerator.configure(SequenceGenerator.java:101)
	at org.hibernate.id.SequenceHiLoGenerator.configure(SequenceHiLoGenerator.java:60)
	at org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:110)
	... 61 more
```



> Oder du verwendest anstelle des ODBC-Treibers den HXTT-Treiber: HXTT's hibernate support package


Dieser Treiber ist aber nicht kostenlos oder? Ich benötige eine kostenlose Lösung.

Was muss ich den ändern damit es mit den Dialect funktioniert?
mfg


----------



## gizmo (13. Feb 2011)

Du müsstest den Dialect erweitern, es handelt sich um eine Implementation, welche keine Sequences unterstützt.

Ich schlage vor, du versuchst es mit dem HXTT-Treiber oder verwendest eine anständige Datenbank.


----------



## maki (13. Feb 2011)

> ..oder verwendest eine anständige Datenbank.


:toll:

Full ACK!

HSQLDB, H2, Derby/JavaDB, MS-SQL Server, meinetwegen auch MySQL, aber Access kannst du vergessen


----------



## marky8264 (13. Feb 2011)

gizmo hat gesagt.:


> Du müsstest den Dialect erweitern, es handelt sich um eine Implementation, welche keine Sequences unterstützt.



Ich habe den Dialect erweitert, aber jetzt bekomme ich wieder die selbe Exception mit den Syntaxfehler beim CREATE. 



gizmo hat gesagt.:


> Ich schlage vor, du versuchst es mit dem HXTT-Treiber oder verwendest eine anständige Datenbank.


Wie ich bereits erwähnt habe benötige ich eine kostenlose Lösung. Das Problem ist, das MS Access ein fixer Bestandteil des Projekts ist, sonst würde ich sowieso eine andere verwenden. 

Kennt niemand eine kostenlose Lösung?
mfg


----------



## gizmo (13. Feb 2011)

Ich würde versuchen, ob es mit dem Dialekt für MS-SQL geht: org.hibernate.dialect.SQLServerDialect
Ansonsten bleibt dir wohl nichts anderes übrig, als den Dialekt zu implementieren.


----------



## Raum114 (14. Feb 2011)

Wo liegt denn das Problem die DB auszutauschen?


----------



## maki (14. Feb 2011)

Raum114 hat gesagt.:


> Wo liegt denn das Problem die DB auszutauschen?


Hat er doch bereits beschrieben:


> Das Problem ist, das MS Access ein fixer Bestandteil des Projekts ist, sonst würde ich sowieso eine andere verwenden.


Oft ist ein Projekt schon mit den Anforderungen verloren 
Naja, zumindest mit Hibernate wird das wohl nix.
Das man die JDBC-ODBC Bridge nicht produktiv verwenden soll (war nie mehr als eine Demo) hat sich nach über 10 Jahren eben noch nciht überall rumgesprochen...


----------



## marky8264 (14. Feb 2011)

maki hat gesagt.:


> Hat er doch bereits beschrieben:
> 
> Oft ist ein Projekt schon mit den Anforderungen verloren
> Naja, zumindest mit Hibernate wird das wohl nix.
> Das man die JDBC-ODBC Bridge nicht produktiv verwenden soll (war nie mehr als eine Demo) hat sich nach über 10 Jahren eben noch nciht überall rumgesprochen...



Danke für eurer Hilfe.
Wir werden nun auf eine richtige DB umsteigen. :toll:
mfg


----------

