java - 为多模块项目创建单个 LocalContainerEntityManagerFactoryBean
问题描述
我们的主项目 pom 使用依赖 jars,它们也是使用 Spring 应用程序开发的。
我们面临一个问题,依赖的 jars 也包含实体。我们希望最后只创建一个 LocalContainerEntityManagerFactoryBean 来存储项目中的所有实体(主项目和依赖项)。
我做了一些阅读并尝试实现以下方式但没有成功,
1> 在父项目中使用 MergingPersistenceUnitManager: 问题:当我检查类的源代码时,它需要依赖 jar 中的 persistence.xml 文件。但是我们不使用persistence.xml,我们只是使用注解。
2> 为 LocalContainerEntityManagerFactoryBean 创建 BeanPostProcessor 并在 postProcessBeforeInitialization 方法中设置 ((LocalContainerEntityManagerFactoryBean)bean).setPersistenceUnitPostProcessors()。问题:我们有多个模块,所以如果我这样编码,只会设置最后一个模块 PersistenceUnitPostProcessors。
如果有任何方法可以实现这一目标,有人可以帮忙吗?
在此先感谢,小猫
解决方案
我找到了解决这个问题的方法。在 bean 后处理器中,我可以通过提供要在相应项目中扫描的包名称来添加 PersistenceUnitPostProcessor。
在依赖项目中,不应为 LocalContainerEntityManagerFactoryBean 创建任何 bean。
推荐阅读
- r - 在 ggplot2 的一个条上添加彩虹渐变
- google-sheets-formula - 在 Google 表格查询中使用“模式”功能
- c# - 如何从get方法ac#类中返回多个值
- java - 使用 BST 插入方法查询的升序和降序排序
- javascript - discord.js 中的冷却没有给出错误或工作
- python - 我可以混合来自不同列的日期吗?Python
- php - Datediff 函数()给我错误的答案
- vb.net - 将 DataGrid 的大小调整链接到表单宽度调整大小
- java - 通过 Wi-Fi(Socket)将文本文件从 Android(Android Studio)发送到 PC
- flexbox - 当反向顺序在 Tailwind 中有断点时,子间距不起作用