Spring + toplink-essentials(JPA) is not a known entity type 问题解决

第一种方法:
 不能有loadTimeWeaver配置,包括<bean id="loadTimeWeaver">或<context:load-time-weaver/>或  <property 

name="loadTimeWeaver" />都不能有。
 然后在persistence.xml文件<properties>中加入: 
 <property name="toplink.weaving" value="static" />
 或者
 <property name="toplink.weaving" value="false" />
 即可,也可以在spring配置加入此属性,此种方法在JavaSE环境中测试通过,JavaEE环境有待测试。
第二种方法:
 加入:
 <context:load-time-weaver/>
 <context:load-time-weaver weaver-class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
 或者
 <bean id="loadTimeWeaver" class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
需要spring-agent.jar,然后再JVM 运行参数中加入:-javaagent:F:\spring-framework-2.5.5\dist\weaving\spring-agent.jar 即可。
此种方法在JavaSE环境中测试通过,JavaEE环境有待测试。
  在容器中,需要指定类载入:
 org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader
 org.springframework.instrument.classloading.glassfish.GlassFishLoadTimeWeaver
 org.springframework.instrument.classloading.weblogic.WebLogicLoadTimeWeaver
第三种方法:

同第二种启动VM参数加入-javaagent:toplink-essentials-agent.jar,该方法没有测试。
 参考:
http://blog.springsource.com/2006/05/30/getting-started-with-jpa-in-spring-20/
http://www.oracle.com/technology/products/ias/toplink/jpa/how-to-index.html
http://www.oracle.com/technology/products/ias/toplink/JPA/essentials/toplink-jpa-extensions.html#TopLinkCustomizationValidation
http://www.oracle.com/technology/products/ias/toplink/JPA/essentials/toplink-jpa-extensions.html#LazyLoading

本文链接:http://blog.csdn.net/myloon/archive/2009/11/08/4784846.aspx



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/myloon/archive/2009/11/08/4784846.aspx

 

在我本地的是这样的代码:

property name="loadTimeWeaver">
     <bean class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver"/>
</property>

 上面是一种情况,不过也可以自己定义类,然后再继承SimpleLoadTimeWeaver

例如:

<property name="loadTimeWeaver">
    <bean class="com.ctit.tools.MyLoadTimeWeaver"/>
</property>






public class MyLoadTimeWeaver extends SimpleLoadTimeWeaver {
 @Override
 public ClassLoader getInstrumentableClassLoader() {  
       return super.getInstrumentableClassLoader().getParent();
 }
}

 

你可能感兴趣的:(spring,oracle,bean,javaee,jpa)