jpa - 在 Spring dm Server 1.x 中使用 EclipseLink JPA 时出现 Aspectj 加载时编织问题

标签 jpa eclipselink aspectj

我正在尝试让 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/

相关文章:

java - Hibernate:嵌入式 id 字段命名问题

java - JPA 从子表中检索名称值而不使用子模型

java - 如何使用不同数据库模式的 JPQL?

java - 如何使用 EclipseLink 调用函数

intellij-idea - IDEA 10.5.2 Aspectj 编译器 - 无法确定缺少类型 org.springframework.transaction.interceptor.TransactionAspectSupport 的父类(super class)

Spring 与 Aspectj 加载时编织,方面在集成测试中未执行

jpa - 从 EntityManager 获取 JDBC 连接

java - JPA2 : deadlock using native query

java - AOP - 错误 : java. lang.StackOverflowError 在 org.aspectj.runtime.internal.AroundClosure

java - 构建 ER 图时如何让 Intellij 显示关系基数?