我正在尝试让 EclipseLink JPA 在 Spring dm Server OSGi 环境中工作。
从 Spring Enterprise Bundle Repository 下载的相关框架和库包括:
- dm 服务器 1.0.2.SR02
- AspectJ 运行时 1.6.3
- AspectJ Weaver 1.6.3
- Spring框架2.5.6.A
- Eclipse 持久性 1.1.0
- Javax 持久性 API 1.99.0
我遵循了 PetClinic-1.5.0 中提供的相同结构。设置 EclipseLink JPA 的示例。一切正常,直到启用延迟获取(这需要代理对象)。
启用延迟获取后,以下错误表明加载时编织无法正常工作。
----(为了便于阅读而被截断)
异常 [EclipseLink-60](Eclipse 持久性服务 - 1.1.0.r3634):org.eclipse.persistence.exceptions.DescriptorException 异常描述:对象 [net.fractech.fds.backoffice.Job] 中未定义方法 [_persistence_setcustomer_vh] 或 [_persistence_getcustomer_vh]。 内部异常:java.lang.NoSuchMethodException:net.fractech.fds.backoffice.Job._persistence_getcu stomer_vh() 映射:org.eclipse.persistence.mappings.OneToOneMapping[客户] 描述符:RelationalDescriptor(net.fractech.fds.backoffice.J ob --> [DatabaseTable(JOBS)])
这表明 _persistence_getcustomer_vh() 和 _persistence_setcustomer_vh() 方法不会自动编织到 Job 域对象中。
问题
1.) 如何确定加载时编织是否真正起作用;此外,如何记录启动了哪个加载时间编织代理和编织器?如何将开关传递给该编织器以使其输出调试信息?
我假设我使用
2.) 许多搜索表明我在使用 dm Server 时不需要将 -javaagent 参数传递给 jvm。这是正确的吗?
3.) 我已通过断言 com.springsource.org.eclipse.persistence;version="[1.1.0,1.1.0]";import 确保另一个包中的域对象可以访问 eclipse 持久性类-scope:=application 在我的 eclipselink 包中,并包括 PAR 中的所有应用程序包。在 Spring dm Server 中启用 EclipseLink JPA 是否还需要任何其他配置?
最佳答案
我也遇到过类似的问题。首先尝试设置 eclipselink.weaving.lazy=false,如果不起作用,则设置 eclipselink.weaving=false。我必须设置后者。
如果您想引用我正在使用的设置,看看它是否适用于您,我的网站上有一篇关于它的帖子。
关于jpa - 在 Spring dm Server 1.x 中使用 EclipseLink JPA 时出现 Aspectj 加载时编织问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1628535/