Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从一个Bean创建两个JPA表?_Java_Spring_Jpa - Fatal编程技术网

Java 从一个Bean创建两个JPA表?

Java 从一个Bean创建两个JPA表?,java,spring,jpa,Java,Spring,Jpa,我知道这在某种程度上是一个简单的继承问题,但我想我会在这里再次检查以确保。我正在做一个java棒球应用程序,理想情况下我希望有两个表。一个用于团队击球统计,一个用于球员击球统计。即使我从中获取数据的API始终具有完全相同的字段(跑步、本垒打、击球平均等) 我使用JPA来定义我的表,我不想为我的两个表定义两个类。例如 @Entity @Table(name="PLAYER_BATTING_STATS") public class PlayerBatt

我知道这在某种程度上是一个简单的继承问题,但我想我会在这里再次检查以确保。我正在做一个java棒球应用程序,理想情况下我希望有两个表。一个用于团队击球统计,一个用于球员击球统计。即使我从中获取数据的API始终具有完全相同的字段(跑步、本垒打、击球平均等)

我使用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知道我想要两个单独的表?在投球和防守等方面,我也必须这样做,这样可以节省很多开销


提前感谢,

我相信,通过使用带有公共字段的基类,并使用
@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

我假定你有这2个类所特有的字段,如果所有字段都是公共的,你只想对使用单个类的击球统计条目进行分类,并且它们有一个枚举,引用枚举的“类型”(例如玩家或团队)。欲了解更多信息,JPA规范的§2.11和§2.12都涉及实体继承。这看起来很有意义!但字段是相同的。通过使用枚举,我仍然可以创建两个这样的表吗?嗨,Josh!如果它们相同,则不需要有两张桌子。您可以使用枚举检索“玩家”或“团队”的所有统计信息。@Josh如果您同意答案,请接受它。谢谢:)@Josh如果你想要两张表,只需使用

InheritateSequestrategy.TABLE\u PER\u CLASS