我使用Apache Tomme 1.7。 我有两个实体,Autor和Livro,具有ManyToMany关系。如果我的实体只有一个Id字段,我可以使用通用dao执行findAll,findOne并正常更新。 问题是,如果我尝试添加其他字段,如“名称”到一个实体,更新和findOne停止工作!entityManager.find只适用于实体只有id字段(OpenJpa,Apache Tomee 1.7)
我有以下实体:
作者日期:
@Entity
public class Autor {
@Id
@GeneratedValue
private Long id;
@ManyToMany(mappedBy="autores", cascade = CascadeType.ALL)
private Collection<Livro> livros;
public Autor(){
this.livros = new ArrayList<Livro>();
}
//Getters and setters
}
这份绿皮书:
@Entity
public class Livro {
@Id
@GeneratedValue
private Long id;
@ManyToMany(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
private Collection<Autor> autores;
@Column(name = "nome")
private String nome;
public Livro(){
this.autores = new ArrayList<Autor>();
}
//Getters and setters
}
我一般DAO:
public abstract class AbstractJpaDao<T> {
private Class<T> clazz;
@PersistenceContext(unitName = "userDatabase")
EntityManager entityManager;
public final void setClazz(Class<T> clazzToSet){
this.clazz = clazzToSet;
}
public T findOne(long id){
return entityManager.find(clazz, id);
}
@SuppressWarnings("unchecked")
public List<T> findAll(){
return entityManager.createQuery(" SELECT u FROM " + clazz.getName() + " u").getResultList();
}
public void create(T entity){
entityManager.persist(entity);
}
public T update(T entity){
return entityManager.merge(entity);
}
public void delete(T entity){
entityManager.remove(entityManager.merge(entity));
}
public void deleteById(long entityId){
T entity = findOne(entityId);
delete(entity);
}
}
吾道的:
public class LivroDao extends AbstractJpaDao<Livro> {
public LivroDao(){
setClazz(Livro.class);
}
public class AutorDao extends AbstractJpaDao<Autor> {
public AutorDao(){
setClazz(Autor.class);
}
}
然后,我有一个无状态的服务:
@Stateless
public class LivroService {
@Inject
private LivroDao livroDao;
public void adiciona(Livro livro){
livroDao.create(livro);
}
public Livro findOne(Long id){
return livroDao.findOne(id);
}
public List<Livro> findAll(){
return livroDao.findAll();
}
public void atualiza(Livro livro) {
livroDao.update(livro);
}
}
最后我ManagedBean:
@ManagedBean (name = "testaBean")
public class TestaBean {
@Inject
private LivroService livroService;
public void find(){
Long idToFind = livroService.findAll().get(0).getId();
Livro livro = livroService.findOne(idToFind);
System.out.println(livro);
}
}
当我尝试调用find()方法,从一些.xhtml文件,我得到了以下在控制台错误:
9386 userDatabase INFO [http-bio-8080-exec-8] openjpa.Runtime - Starting OpenJPA 2.4.0-nonfinal-1598334
9823 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 315308390> executing stmnt 288599461 ALTER TABLE Livro ADD nome VARCHAR(255)
9889 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 315308390> [66 ms] spent
9934 userDatabase WARN [http-bio-8080-exec-8] openjpa.Enhance - Creating subclass for "[class entities.Livro, class entities.Autor]". This means that your application will be less efficient and will consume more memory than it would if you ran the OpenJPA enhancer. Additionally, lazy loading will not be available for one-to-one and many-to-one persistent attributes in types using field access; they will be loaded eagerly instead.
10223 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 1505136323> executing prepstmnt 827552192 SELECT t0.id, t0.nome FROM Livro t0
10223 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 1505136323> [0 ms] spent
10264 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 1505136323> executing prepstmnt 1936078582 SELECT t1.id FROM Livro_Autor t0 INNER JOIN Autor t1 ON t0.AUTORES_ID = t1.id WHERE t0.LIVROS_ID = ? [params=?]
10264 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 1505136323> [0 ms] spent
10291 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 1505136323> executing prepstmnt 1305537666 UPDATE Livro SET nome = ? WHERE id = ? [params=?, ?]
10328 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 1505136323> [37 ms] spent
10346 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 337295443> executing prepstmnt 1454078729 SELECT t0.nome, t1.LIVROS_ID, t2.id FROM Livro t0 LEFT OUTER JOIN Livro_Autor t1 ON t0.id = t1.LIVROS_ID LEFT OUTER JOIN Autor t2 ON t1.AUTORES_ID = t2.id WHERE t0.id = ? ORDER BY t1.LIVROS_ID ASC [params=?]
10347 userDatabase TRACE [http-bio-8080-exec-8] openjpa.jdbc.SQL - <t 396837323, conn 337295443> [0 ms] spent
Out 09, 2014 3:47:16 PM org.apache.openejb.core.transaction.EjbTransactionUtil handleSystemException
SEVERE: EjbTransactionUtil.handleSystemException: null
<openjpa-2.4.0-nonfinal-1598334-r422266:1599166 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
FailedObject: 4251 [org.apache.openjpa.util.LongId] [java.lang.String]
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:1031)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:925)
at org.apache.openjpa.kernel.DelegatingBroker.find(DelegatingBroker.java:231)
at org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:487)
at org.apache.openejb.persistence.JtaEntityManager.find(JtaEntityManager.java:175)
at dao.AbstractJpaDao.findOne(AbstractJpaDao.java:20)
at service.LivroService.findOne(LivroService.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:181)
at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:227)
at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:194)
at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:308)
at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:303)
at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:92)
at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:308)
at service.LivroService$$LocalBeanProxy.findOne(service/LivroService.java)
at beans.TestaBean.find(TestaBean.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setInverseRelation(JDBCStoreManager.java:453)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:413)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:306)
at org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:112)
at org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:1050)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:1008)
... 66 more
Out 09, 2014 3:47:16 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
WARNING: #{testaBean.find}: javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is:
<openjpa-2.4.0-nonfinal-1598334-r422266:1599166 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
FailedObject: 4251 [org.apache.openjpa.util.LongId] [java.lang.String]
javax.faces.FacesException: #{testaBean.find}: javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is:
<openjpa-2.4.0-nonfinal-1598334-r422266:1599166 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
FailedObject: 4251 [org.apache.openjpa.util.LongId] [java.lang.String]
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is:
<openjpa-2.4.0-nonfinal-1598334-r422266:1599166 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
FailedObject: 4251 [org.apache.openjpa.util.LongId] [java.lang.String]
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
... 28 more
Caused by: javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is:
<openjpa-2.4.0-nonfinal-1598334-r422266:1599166 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
FailedObject: 4251 [org.apache.openjpa.util.LongId] [java.lang.String]
at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:408)
at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:312)
at service.LivroService$$LocalBeanProxy.findOne(service/LivroService.java)
at beans.TestaBean.find(TestaBean.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 29 more
Caused by: <openjpa-2.4.0-nonfinal-1598334-r422266:1599166 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
FailedObject: 4251 [org.apache.openjpa.util.LongId] [java.lang.String]
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:1031)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:925)
at org.apache.openjpa.kernel.DelegatingBroker.find(DelegatingBroker.java:231)
at org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:487)
at org.apache.openejb.persistence.JtaEntityManager.find(JtaEntityManager.java:175)
at dao.AbstractJpaDao.findOne(AbstractJpaDao.java:20)
at service.LivroService.findOne(LivroService.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:181)
at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:227)
at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:194)
at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:308)
at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:303)
at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:92)
at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:308)
... 39 more
Caused by: java.lang.NullPointerException
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setInverseRelation(JDBCStoreManager.java:453)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:413)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:306)
at org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:112)
at org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:1050)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:1008)
... 66 more
但是,如果我删除th e“nome”字段,一切正常!问题是什么?
我的persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="userDatabase" transaction-type="JTA">
<jta-data-source>userDatabase</jta-data-source>
<properties>
<property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE"/>
<!-- Adicionar SQL=TRACE para ver os SQL Statements
http://openjpa.apache.org/builds/1.0.2/apache-openjpa-1.0.2/docs/manual/ref_guide_logging_openjpa.html
-->
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>
<property name="openjpa.jdbc.SchemaFactory" value="native(ForeignKeys=true)" />
<!-- http://openjpa.apache.org/builds/1.0.2/apache-openjpa-1.0.2/docs/manual/ref_guide_perfpack_eager.html -->
<property name="openjpa.jdbc.EagerFetchMode" value="join"/>
</properties>
</persistence-unit>
</persistence>
而且我tomee.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<tomee>
<!-- see http://tomee.apache.org/containers-and-resources.html -->
<!-- activate next line to be able to deploy applications in apps -->
<!-- <Deployments dir="apps" /> -->
<Resource id="userDatabase" type="DataSource">
JdbcDriver com.mysql.jdbc.Driver
JdbcUrl jdbc:mysql://localhost:3306/projeto_bim
UserName root
Password 123
JtaManaged true
</Resource>
</tomee>
感谢您的帮助!问题在于RuntimeUnenhancedClasses始终处于启用状态。如果你读了文件,你会看到默认值应该是不支持的,但由于某些原因,如果我没有明确指定openjpa.RuntimeUnenhancedClasses =不支持的,它会激活该功能。我所做的工作就是明确的属性设置为不支持,我也不得不加入“-javaagent:” C:\ Apache的tomee-webprofile-1.7.0 \ LIB \ OpenEJB的-javaagent.jar“”运行配置在日食。 – LucasM 2014-10-10 17:49:06