Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有SQLite的Datanucleus JDO_Java_Sqlite_Junit_Jdo_Datanucleus - Fatal编程技术网

Java 带有SQLite的Datanucleus JDO

Java 带有SQLite的Datanucleus JDO,java,sqlite,junit,jdo,datanucleus,Java,Sqlite,Junit,Jdo,Datanucleus,对于应用程序中的JUnit测试,我尝试初始化Datanucleus以使用SQLite数据库。但是,当我尝试获取一个PersistenceManager时,它在尝试创建DELETEME*********表时失败(我也不完全知道它为什么需要这个表) 由于某些标识符长度问题,在truncate()期间它似乎失败。我试图调整各种各样的datanucleus配置属性,但都没有用 有人能向我解释一下为什么Datanucleus觉得需要创建这些DELETEME****表,以及是什么可能导致SQLite(org

对于应用程序中的JUnit测试,我尝试初始化Datanucleus以使用SQLite数据库。但是,当我尝试获取一个
PersistenceManager
时,它在尝试创建
DELETEME*********
表时失败(我也不完全知道它为什么需要这个表)

由于某些标识符长度问题,在truncate()期间它似乎失败。我试图调整各种各样的datanucleus配置属性,但都没有用

有人能向我解释一下为什么Datanucleus觉得需要创建这些
DELETEME****
表,以及是什么可能导致SQLite(org.SQLite.JDBC)数据库而不是MySQL的截断失败


日志:

2011年4月12日下午1:30:16 org.datanucleus.store.rdbms.table.AbstractTable创建
信息:创建表DELETEME1302640216142
2011年4月12日下午1:32:10 org.datanucleus.store.rdbms.rdbmssstoremanager
严重:初始化数据库失败。请检查您的数据库JDBC驱动程序是否可访问,以及数据库URL和用户名/密码是否正确。例外:长度参数(=3)小于哈希长度(=4)!
java.lang.IllegalArgumentException:长度参数(=-3)小于哈希长度(=4)!
完整堆栈跟踪:

java.lang.IllegalArgumentException: The length argument (=-3) is less than HASH_LENGTH(=4)!
    at org.datanucleus.store.mapped.identifier.AbstractIdentifierFactory.truncate(AbstractIdentifierFactory.java:314)
    at org.datanucleus.store.mapped.identifier.AbstractIdentifierFactory.newPrimaryKeyIdentifier(AbstractIdentifierFactory.java:661)
    at org.datanucleus.store.rdbms.key.PrimaryKey.<init>(PrimaryKey.java:37)
    at org.datanucleus.store.rdbms.table.TableImpl.getPrimaryKey(TableImpl.java:128)
    at org.datanucleus.store.rdbms.table.TableImpl.getSQLCreateStatements(TableImpl.java:1264)
    at org.datanucleus.store.rdbms.table.AbstractTable.create(AbstractTable.java:419)
    at org.datanucleus.store.rdbms.RDBMSStoreManager.initialiseSchema(RDBMSStoreManager.java:676)
    at org.datanucleus.store.rdbms.RDBMSStoreManager.<init>(RDBMSStoreManager.java:350)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(NonManagedPluginRegistry.java:597)
    at org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager.java:300)
    at org.datanucleus.ObjectManagerFactoryImpl.initialiseStoreManager(ObjectManagerFactoryImpl.java:227)
    at org.datanucleus.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPersistenceManagerFactory.java:591)
    at org.datanucleus.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:293)
    at org.datanucleus.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:189)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at javax.jdo.JDOHelper$16.run(JDOHelper.java:1965)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.jdo.JDOHelper.invoke(JDOHelper.java:1960)
    at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1166)
    at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808)
    at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701)
java.lang.IllegalArgumentException:长度参数(=-3)小于哈希长度(=4)!
位于org.datanucleus.store.mapped.identifier.AbstractIdentifierFactory.truncate(AbstractIdentifierFactory.java:314)
位于org.datanucleus.store.mapped.identifier.AbstractIdentifierFactory.newPrimaryKeyIdentifier(AbstractIdentifierFactory.java:661)
位于org.datanucleus.store.rdbms.key.PrimaryKey(PrimaryKey.java:37)
位于org.datanucleus.store.rdbms.table.TableImpl.getPrimaryKey(TableImpl.java:128)
位于org.datanucleus.store.rdbms.table.TableImpl.getSQLCreateStatements(TableImpl.java:1264)
位于org.datanucleus.store.rdbms.table.AbstractTable.create(AbstractTable.java:419)
位于org.datanucleus.store.rdbms.RDBMSStoreManager.initialiseSchema(RDBMSStoreManager.java:676)
位于org.datanucleus.store.rdbms.RDBMSStoreManager。(RDBMSStoreManager.java:350)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(NonManagedPluginRegistry.java:597)
位于org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager.java:300)
位于org.datanucleus.ObjectManagerFactoryImpl.InitialieStoreManager(ObjectManagerFactoryImpl.java:227)
位于org.datanucleus.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPersistenceManagerFactory.java:591)
位于org.datanucleus.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:293)
位于org.datanucleus.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:189)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
javax.jdo.JDOHelper$16.run(JDOHelper.java:1965)
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.jdo.JDOHelper.invoke(JDOHelper.java:1960)
在javax.jdo.JDOHelper.InvokeGetPersistenceManager工厂实现中(JDOHelper.java:1166)
位于javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808)
位于javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701)

您可能会更快地在
java.lang.IllegalArgumentException: The length argument (=-3) is less than HASH_LENGTH(=4)!
    at org.datanucleus.store.mapped.identifier.AbstractIdentifierFactory.truncate(AbstractIdentifierFactory.java:314)
    at org.datanucleus.store.mapped.identifier.AbstractIdentifierFactory.newPrimaryKeyIdentifier(AbstractIdentifierFactory.java:661)
    at org.datanucleus.store.rdbms.key.PrimaryKey.<init>(PrimaryKey.java:37)
    at org.datanucleus.store.rdbms.table.TableImpl.getPrimaryKey(TableImpl.java:128)
    at org.datanucleus.store.rdbms.table.TableImpl.getSQLCreateStatements(TableImpl.java:1264)
    at org.datanucleus.store.rdbms.table.AbstractTable.create(AbstractTable.java:419)
    at org.datanucleus.store.rdbms.RDBMSStoreManager.initialiseSchema(RDBMSStoreManager.java:676)
    at org.datanucleus.store.rdbms.RDBMSStoreManager.<init>(RDBMSStoreManager.java:350)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(NonManagedPluginRegistry.java:597)
    at org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager.java:300)
    at org.datanucleus.ObjectManagerFactoryImpl.initialiseStoreManager(ObjectManagerFactoryImpl.java:227)
    at org.datanucleus.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPersistenceManagerFactory.java:591)
    at org.datanucleus.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:293)
    at org.datanucleus.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:189)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at javax.jdo.JDOHelper$16.run(JDOHelper.java:1965)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.jdo.JDOHelper.invoke(JDOHelper.java:1960)
    at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1166)
    at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808)
    at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701)