我正在尝试将我的项目从spring-boot-1.4.3.RELEASE
升级到spring-boot-1.5.9.RELEASE
。
在1.4.3.RELEASE
我使用自定义存储库实现的方式如下:
MyCustomRepositroy
JpaRepository
MyCustomRepositoryImpl
和MyCustomRepositroy
的课程SimpleJpaRepository
。在那堂课中,我改变了郎的行为
save
,find
和delete
方法,因为我需要一个
特定类型实体的ceratin行为(假设我需要一个
实现save
接口的所有实体的自定义Special
MyCustomJpaRepositoryFactoryBean
,扩展了JpaRepositoryFactoryBean
。在那家工厂,我已经覆盖了createRepositoryFactory
并将其MyRepositoryFactory
实施了。
在MyRepositoryFactory
实现中,我覆盖了getTargetRepository
和getRepositoryBaseClass
。在这些方法中,我检查实体是否为Special
类型,如果是,我返回{ {1}},否则我会返回MyCustomRepositoryImpl
。另外,我可以在我的SimpleJpaRepository
类中获取beanFactory,因为我通过MyCustomRepositoryImpl
调用我自己的MyCustomRepositoryImpl
构造函数,它也有一个beanFactory参数。
现在,使用新版本(使用getTargetRepositoryViaReflection
),我无法覆盖Factory类,因此无法决定每个权限给出哪个实现,并且无法获取beanFactory。 / p>
有什么方法可以得到我想要的东西吗?
对不起,我不能在这里发布我的代码。
PS - 我的项目是一个基于Spring的库,所以我不能对实体做任何事情,因为我的客户声明它们,我知道有些实体实现了spring-data-commons-1.13.9.RELEASE
接口而有些实体没有
答案 0 :(得分:0)
我想弄清楚1.5.9.RELEASE中发生了什么,但与此同时,就像一个fyi - 1.5.6.RELEASE正常工作。
尝试从1.5.6.RELEASE更新到1.5.9.RELEASE
时遇到同样的问题