DataNucleus.Persistence - 属性javax.jdo.option.spi.ResourceName未知

时间:2012-01-18 14:12:03

标签: java persistence jdo datanucleus

我正在使用Java数据对象(JDO)来持久化自定义Java类。这工作正常,但当我从商店获取或保存对象时,我的日志被以下信息消息所淹没:

  

DataNucleus.Persistence - 属性javax.jdo.option.spi.ResourceName unknown - 将被忽略

在Google上搜索此消息会显示一些结果,但这些结果并非特定于删除此消息。我希望你们能帮忙!您可以在下面找到我的jdo.properties文件的内容:

javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.api.jdo.JDOPersistenceManagerFactory
javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver
javax.jdo.option.ConnectionURL=jdbc:mysql://127.0.0.1/dbName
javax.jdo.option.ConnectionUserName=userName
javax.jdo.option.ConnectionPassword=password
datanucleus.autoCreateSchema=true
datanucleus.autoCreateTables=true
datanucleus.autoCreateColumns=true
datanucleus.PersistenceUnitName=MyPersistenceUnit
datanucleus.query.jdoql.allowAll=true 

2 个答案:

答案 0 :(得分:0)

创建PMF时JDOHelper(错误地)将自己的一些属性添加到传递给实现构造函数的内容中。所有最新版本的DataNucleus都不会输出该日志消息并忽略该属性。所有早期版本都输出日志消息并忽略该属性。

答案 1 :(得分:0)

回答我自己的问题(也许这对某些人有用):

我使用

PersistenceManagerFactory实例进行了较早的初始化
PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactions-optional");

忽略了我的 jdo.properties 文件。将代码更改为

PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("jdo.properties");

解决了这个问题。