2010-12-06 12 views
0

Ich verwende eine In-Memory-Derby-Datenbank mit Hibernate, um die Tabellen zu erstellen. Meine Tests verwenden dbunit, um die Datenbank mit Testdaten vorzubereiten.Hibernate hbm2ddl boolesche Spalte typeCastException in dbunit

db.driverClass=org.apache.derby.jdbc.EmbeddedDriver 
db.url=jdbc:derby:memory:myDb;create=true 
hibernate.dialect=org.hibernate.dialect.DerbyDialect 
hibernate.hbm2ddl.auto=create-drop 

Hibernate scheint ein smallint Spaltentyp erstellen einen Booleschen Wert zu speichern. Aber dbunit kann diesen Wert nicht konvertieren.

Caused by: org.dbunit.dataset.datatype.TypeCastException: Unable to typecast value <true> of type <java.lang.String> to SMALLINT 

Jede Idee zu machen Hibernate eine boolean Spalte erstellen (falls verfügbar in Derby) oder DBUnit schreiben Java boolean zum Smallint Spalte machen?

Dies erklärt das gleiche Problem, aber es scheint keine DataTypeFactory-Implementierung für Derby zu geben. http://old.nabble.com/Data-type-factory-for-Derby-database.-td25996976.html

+0

Ich habe das gleiche Problem mit Oracle, haben Sie eine Lösung zu finden, um dbunit Booleans entsprechend der zugrunde liegenden Db-Implementierung zu interpretieren? – chrismarx

Antwort

0

Ich glaube nicht, dass ein echter boolescher Datentyp derzeit in Derby verfügbar ist, obwohl es Arbeit gibt, einen zu liefern, siehe: https://issues.apache.org/jira/browse/DERBY-4716. Eine Derby-Veröffentlichung, die diese Arbeit unterstützt, wird "bald" erwartet.