【发布时间】:2011-03-11 13:39:48
【问题描述】:
我的 J2EE 应用程序中有大约 10 个不同的实体,它们现在共享完全相同的实现。它们都继承自同一个被注释为@MappedSuperclass 的通用抽象类,但是这个类不包含我在所有具体子类中重复的实现。
如果可以的话,我会将所有不同的字段和集合放在这个抽象超类上,因此也将实现方法放在那里——全部放在一个地方而不是 10 个。但是,由于 JPA 限制I cannot add JPA annotations to generic fields or accessors.
虽然我通常倾向于委托实现继承,但由于另一个 JPA 限制规定您不能拥有带有集合的嵌入式实体,因此使用委托的想法也行不通。
当我只有 3-4 个这些实体和 2-3 个方法时,这没什么大不了的,但现在我有大约 10 个 - 每个大约 7-8 个方法......以及一些方法变得非常复杂。而且我使用的“剪切复制粘贴”继承真的很烂。
还有其他绝妙的想法吗?
【问题讨论】:
标签: java jpa entity generics abstract