[1.2.4] SQLite and Hibernate GenericJDBCException : could not get table metadata

707 views
Skip to first unread message

Guillaume Maucomble

unread,
Mar 19, 2012, 8:23:48 AM3/19/12
to play-fr...@googlegroups.com
Hi all,

First of all, congratulations for this amazing framework. I've been using it for a few days, and I think it's great.

I've been using SQLite in Play! and been brought to this error :

11:54:56,225 INFO  ~ Connected to jdbc:sqlite:db/mydb.db
11:54:56,850 WARN  ~ SQL Error: 0, SQLState: null
11:54:56,851 ERROR ~ not yet implemented
11:54:56,853 ERROR ~ could not complete schema update
org.hibernate.exception.GenericJDBCException: could not get table metadata: User
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
        at org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(DatabaseMetadata.java:128)
        at org.hibernate.cfg.Configuration.generateSchemaUpdateScript(Configuration.java:1172)
        at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:187)
        at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:375)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1842)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:902)
        at play.db.jpa.JPAPlugin.onApplicationStart(JPAPlugin.java:240)
        at play.plugins.PluginCollection.onApplicationStart(PluginCollection.java:480)
        at play.Play.start(Play.java:515)
        at play.Play.detectChanges(Play.java:618)
        at play.Invoker$Invocation.init(Invoker.java:198)
        at play.server.PlayHandler$NettyInvocation.init(PlayHandler.java:195)
        at play.Invoker$Invocation.run(Invoker.java:276)
        at play.server.PlayHandler$NettyInvocation.run(PlayHandler.java:235)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: not yet implemented
        at org.sqlite.MetaData.getImportedKeys(MetaData.java:503)
        at com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData.getImportedKeys(NewProxyDatabaseMetaData.java:3062)
        at org.hibernate.tool.hbm2ddl.TableMetadata.initForeignKeys(TableMetadata.java:161)
        at org.hibernate.tool.hbm2ddl.TableMetadata.<init>(TableMetadata.java:60)
        at org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(DatabaseMetadata.java:113)
        ... 21 more

The associated model is a very simple class : 
@Entity 
public class User extends Model {
@Required
public String login;
@Required
public String password;
@Required @Email @MaxSize(64)
public String email;
public boolean isActive;

@Override
public String toString() { return login + " (" + email + ")" ; }
}

Next to this model, relies another  very similar one (using only varchars and integers) which won't produce any error.

The very same project, with a MySQL database, won't produce this error either. So I believe that the error is tight to the use of SQLite.

The application does not crash, but I wonder if it will eventually induce issues in a short or long term.

Has any of you been affected with this error message ?

Thank you so much,

Guillaume

christian sarnataro

unread,
Mar 19, 2012, 1:05:31 PM3/19/12
to play-fr...@googlegroups.com
Hi, maybe a question of database Dialect?
Reply all
Reply to author
Forward
0 new messages