gpt4 book ai didi

java - 在具体的 JPA 类之间共享 Java 实现的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-01 16:03:37 24 4
gpt4 key购买 nike

我的 J2EE 应用程序中有大约 10 个不同的实体,它们现在共享完全相同的实现。它们都继承自同一个通用抽象类,该抽象类已被注释为 @MappedSuperclass,但该类不包含我在所有具体子类中重复的实现。

如果可以的话,我会将所有不同的字段和集合放在这个抽象父类(super class)中,因此也将实现方法放在那里——全部放在一个地方而不是 10 个地方。但是,由于 JPA 限制 I cannot add JPA annotations to generic fields or accessors.

虽然我通常赞成对实现继承进行委托(delegate),但由于另一个 JPA 限制,即不能拥有带有集合的嵌入式实体,因此使用委托(delegate)的想法也行不通。

当我只有 3-4 个这样的实体和 2-3 个方法时,这没什么大不了的,但现在我有大约 10 个——每个实体大约 7-8 个方法......以及其中一些方法变得非常复杂。我使用的“剪切-复制-粘贴”继承真的很糟糕。

还有其他绝妙的想法吗?

最佳答案

  1. 仔细检查这些“限制”是否确实适用于您的 JPA 提供商。我已经嵌入了带有集合的对象,并且效果很好(使用 Hibernate)。我有一个带有映射字段的 @MappedSuperclass

  2. 您可以尝试省略@MappedSuperclass,并使用正确的继承层次结构使父类(super class)抽象@Entity

关于java - 在具体的 JPA 类之间共享 Java 实现的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3173800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com