我正在开发一个具有默认功能的模块化Webproject,可以使用“插件”进行扩展,这是一个额外的Java库。
“核心”项目知道映射到User表的User实体。 插件项目将此User扩展为ExtendedUser,它也映射到同一个表 -
两个实体应该共存,其中用户只知道一些列。
两个实体都在同一个classapth中包含的不同库中声明。
如何让它与hibernate一起使用?
谢谢!
答案 0 :(得分:3)
假设您的意思是ExtendedUser
是一个扩展User
的类,那么您可以使用Hibernate的“每个类的表层次结构”继承策略。请参阅docs here。使用注释,您可以使用InheritanceType.SINGLE_TABLE
(请参阅文档2.2.4.2 here)。
答案 1 :(得分:1)
我曾经尝试过将一个表映射到两个Java实体(没有继承方案)。我只想在保留旧实体的同时尝试一些不同的映射。
问题是,如果您的User和ExtenderUser共享相同的实体X集合,Hibernate会抱怨不知道哪个实体X连接回来:User或ExtenderUser。
所以底线,在我的情况下,它没有用,而且没有。
我没有尝试过继承方案,但是根据你所说的,你也没有。