在Spring Boot应用中从外部JAR加载模型和DAO

时间:2018-09-26 15:09:26

标签: spring hibernate spring-boot jar configuration

经过大量研究和测试,我向社区寻求帮助:

上下文

应用程序«V2»

MySQL 55

Mysql:5.1.29

休眠:4.2.5。最终

  • 应用程序context.xml定义了DAO(+服务,控制器等)
  • 用@Entity注释并由org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor加载的模型?在应用程序上下文中?

应用程序«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模型集成到“迁移”应用中。

  • 创建v3 jar->通过Maven导入-> @Configuration中的程序包扫描,但没有实例化@Repository

目前,我将粘贴模型和存储库复制到应用迁移包中,该迁移包由数据源扫描,并作为简单模型起作用。

  • 创建v2 jar->通过Maven导入->创建用于加载应用程序context.xml的@Configuration类

此文件是“迁移”应用程序的本地文件(而不是到外部jar中的文件),并描述了要加载的DAO(进入外部jar)。

迁移应用启动良好

问题

但是当我们在方法上调用v2 DAO时(v2DAO.find => ERROR )错误:

原因:org.hibernate.UnknownEntityTypeException:无法找到持久性:com.company.model.MyModel

MyModel是@Entity插入外部jar

问题

似乎

  • DAO与模型之间存在问题

  • 或未加载模型

  • 或数据源未链接到模型

  • 或未加载DAO

顺便说一句,我在启动时没有实体冲突,这很奇怪。我们不应该有“错误的重复实体”吗?

是否存在休眠/ mysql版本问题?

是否可以通过Spring Boot从外部JAR加载对象? (注释或应用程序上下文文件?)

你有什么想法吗?铅?反射?建议?


我到目前为止尝试过:

  • 将所有DAO定义为persistence.xml

=>(我必须更改@Entity,因为重复(证明加载良好)-> ame错误(无法找到持久性)

  • 使用JBoss工具进行逆向工程,生成实体(但即使选中“生成EJB3注释:我的实体上也没有注释。而且没有用

  • 在我的应用迁移中创建自己的@repository->不太好

  • 复制通过反向工程生成的hbm.xml->不太好

0 个答案:

没有答案