猿问

从一个 Bean 创建两个 JPA 表?

我知道这在某种程度上是某种继承的简单问题,但我想我会在这里仔细检查以确保。我正在做一个 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 知道我想要两个单独的表?我还必须在投球和防守等方面这样做。所以这将为我节省很多开销。


提前致谢,


哔哔one
浏览 137回答 1
1回答

喵喔喔

我相信,通过拥有一个具有通用字段的基类并使用@MappedSupperClass.基类:@MappedSuperClassabstract 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我假设您确实有特定于这两个类的字段,如果所有字段都是通用的,并且您只想对击球统计条目进行分类,您应该考虑使用单个类,并且它们具有引用“类型”的枚举统计数据(例如球员或球队)。
随时随地看视频慕课网APP

相关分类

Java
我要回答