为了账号安全,请及时绑定邮箱和手机立即绑定

从一个 Bean 创建两个 JPA 表?

从一个 Bean 创建两个 JPA 表?

哔哔one 2021-08-25 10:47:01
我知道这在某种程度上是某种继承的简单问题,但我想我会在这里仔细检查以确保。我正在做一个 java 棒球应用程序,我希望有两个表。一份用于球队击球统计,一份用于球员击球统计。即使我从中获取数据的 API 始终具有完全相同的字段(runs、home_runs、batting_average 等)我正在使用 JPA 来定义我的表,我不想为我的两个表定义两个类。如..        @Entity        @Table(name="PLAYER_BATTING_STATS")        public class PlayerBattingStats implements Serializable {       //All 23 fields of data here ...然后立即创建..@Entity@Table(name="TEAM_BATTING_STATS")public class TeamBattingStats implements Serializable {//Exact Same columns here for different table有没有办法创建一个类,但让 JPA 知道我想要两个单独的表?我还必须在投球和防守等方面这样做。所以这将为我节省很多开销。提前致谢,
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

我相信,通过拥有一个具有通用字段的基类并使用@MappedSupperClass.


基类:


@MappedSuperClass

abstract class BaseBattingStats implements Serializable

//common fields go here

球员等级:


@Entity

    @Table(name="PLAYER_BATTING_STATS")

    public class PlayerBattingStats extends BaseBattingStats implements Serializable {

//fields that are specific to Player class go here

团队类:


@Entity

    @Table(name="TEAM_BATTING_STATS")

    public class TeamBattingStats extends BaseBattingStats implements Serializable {

//fields that are specific to Player class go here

我假设您确实有特定于这两个类的字段,如果所有字段都是通用的,并且您只想对击球统计条目进行分类,您应该考虑使用单个类,并且它们具有引用“类型”的枚举统计数据(例如球员或球队)。


查看完整回答
反对 回复 2021-08-25
  • 1 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信