blinkfox / fenix

This is an extension library to the Spring Data JPA complex or dynamic SQL query. 这是一个比 MyBatis 更加强大的 Spring Data JPA 扩展库,为解决复杂动态 JPQL (或 SQL) 而生。https://blinkfox.github.io/fenix
https://blinkfox.github.io/fenix
Apache License 2.0
346 stars 72 forks source link

关于2.3.2版本兼容旧版jpa的问题 #19

Closed cn-nemo closed 3 years ago

cn-nemo commented 4 years ago

我们知道2.3.2版本兼容旧版jpa需要在这里FenixJpaClassWriter改字节码。另一个点ClassLoader是有区隔的。 有问题的情况是,如果dao层实例化比较早(比如在实例化filter时候就需要先实例化依赖的dao),会发现报空指针错误(FenixQueryLookupStrategy的字节码修改失败,所以createOldJpaQueryLookupStrategy方法默认返回了null);如果dao层实例化比较晚,则正常。 经过排查是发现由于ClassLoader区隔导致,作者可以测试修改一下。

blinkfox commented 4 years ago

嗯,后续有时间我看看

blinkfox commented 3 years ago

这个问题新版本应该没这个问题了,你可以再试试,是通过解决修改 javaassist 一些相关代码解决的。