我第一次尝试openjpa 2.0.1,并得到:
79 WARN [main] openjpa.Runtime - The configuration property named "openjpa.Id" was not recognized and will be ignored, although the name closely matches a valid property called "openjpa.Id".
179 INFO [main] openjpa.Runtime - Starting OpenJPA 2.0.1
371 INFO [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.PostgresDictionary" (PostgreSQL 8.4.4 ,PostgreSQL Native Driver PostgreSQL 9.0 JDBC4 (build 801)).
<openjpa-2.0.1-r422266:989424 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance "x.quality.QualityQuery@4c4b11e9" to PersistenceCapable failed. Ensure that it has been enhanced.
FailedObject: x.quality.QualityQuery@4c4b11e9
at org.apache.openjpa.kernel.BrokerImpl.assertPersistenceCapable(BrokerImpl.java:4559)
at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2561)
at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2423)
at org.apache.openjpa.kernel.DelegatingBroker.persist(DelegatingBroker.java:1069)
at org.apache.openjpa.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:706)
at ...
根据
the OpenJPA docs
,我不需要做任何事情来获得运行时的基本增强功能:
2.5。省略openjpa增强器
OpenJPA不要求
增强器运行。如果不运行
增强器,OpenJPA将回到
几种可能的替代方案之一
状态跟踪,取决于
执行环境。
Java 6类
再转换:
如果你在跑步
Java 6中的应用程序
环境,OpenJPA将尝试
动态注册
将重新定义的类转换器
你坚持不懈的课程飞向
跟踪对持久数据的访问。
此外,OpenJPA将创建一个
每个持久的子类
类。执行查询或
遍历关系,openjpa将
返回子类的实例。
这意味着
操作员将按预期工作,但
o.getClass()将返回子类
而不是你写的课。
你什么都不需要做
以获得这种行为。OpenJPA意志
自动检测是否
执行环境能够
对Java 6类进行重新转换。
有什么线索说明这不管用吗?多谢…
(关于OpenJPA.ID警告发生的原因的奖励积分-我没有设置任何此类属性…)