经过大量研究和测试,我向社区寻求帮助:
应用程序«V2»
MySQL 55
Mysql:5.1.29
休眠:4.2.5。最终
应用程序«V3»
MySQL 57,但可在55上运行
MySql:5.1.46
休眠:5.2.17。最终 -春季靴 -具有注释的实体和存储库
迁移应用
必须了解v2模型并在v2 BDD上进行连接
必须了解v3型号并在v3 BDD上进行连接
自行拥有一些表格
=>与Spring Boot注释一起使用
已创建3个数据源,每个数据源均已连接至其BDD
服务使用@Qualifier加载良好的@repository
已为应用程序v2,v3(使用不同的软件包)创建了一个简单的模型
=>一切正常
将V2模型和V3模型集成到“迁移”应用中。
目前,我将粘贴模型和存储库复制到应用迁移包中,该迁移包由数据源扫描,并作为简单模型起作用。
此文件是“迁移”应用程序的本地文件(而不是到外部jar中的文件),并描述了要加载的DAO(进入外部jar)。
迁移应用启动良好
但是当我们在方法上调用v2 DAO时(v2DAO.find => ERROR )错误:
原因:org.hibernate.UnknownEntityTypeException:无法找到持久性:com.company.model.MyModel
MyModel是@Entity插入外部jar
似乎
DAO与模型之间存在问题
或未加载模型
或数据源未链接到模型
或未加载DAO
顺便说一句,我在启动时没有实体冲突,这很奇怪。我们不应该有“错误的重复实体”吗?
是否存在休眠/ mysql版本问题?
是否可以通过Spring Boot从外部JAR加载对象? (注释或应用程序上下文文件?)
你有什么想法吗?铅?反射?建议?
我到目前为止尝试过:
=>(我必须更改@Entity,因为重复(证明加载良好)-> ame错误(无法找到持久性)
使用JBoss工具进行逆向工程,生成实体(但即使选中“生成EJB3注释:我的实体上也没有注释。而且没有用
在我的应用迁移中创建自己的@repository->不太好
复制通过反向工程生成的hbm.xml->不太好