我遇到这种情况:
我可以将其与单一数据源一起使用吗?
示例:
Person
实体PersonList
实体,该实体通过people
属性我现在想要使用"人员列表插件包中的PersonListService
"使用PersonListRepository.findByPeoplesFirstName(String firstName)
背景是我希望通过添加osgi包作为插件来扩展我的应用程序的数据库。
现在我尝试使用apache karaf和hibernate 5,因为空间支持,如果这很重要。
答案 0 :(得分:0)
在OSGi中,建议JPA EntityManager的所有实体都驻留在同一个包中。您可以从看到所有实体的包中创建EntityManager,但这不适用于您想要的插件模型。
无论如何,在数据库端创建一个产生多个bundle的模型可能会产生不必要的耦合。您应该研究有界上下文的DDD概念,并创建持久化上下文,以实现每个有界上下文。
无论如何,插件模型与数据库的兼容性不高,因为数据库通常需要具有非常静态的结构,而插件可能会在运行时出现。
您当然可以共享DataSource,但这是在jdbc级别而不是在jpa级别。