Создать две таблицы JPA из одного компонента? - PullRequest
0 голосов
/ 01 сентября 2018

Я знаю, что это какая-то простая проблема с наследованием, но я подумала, что проверю здесь еще раз. Я делаю Java-приложение для бейсбола, и в идеале я хотел бы иметь две таблицы. Один для статистики ватина КОМАНДЫ и один для статистики ватина ИГРОКА. Даже несмотря на то, что API, из которого я получаю данные, имеет одни и те же поля на всем протяжении (run, 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 Ответ

0 голосов
/ 01 сентября 2018

Я считаю, что то, чего вы хотите достичь, возможно, если у вас есть базовый класс с полями, которые являются общими, и сопоставьте этот класс, используя @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

Я предполагаю, что у вас есть поля, специфичные для этих двух классов, если все поля являются общими и вы просто хотите классифицировать записи статистики ватина, вы должны рассмотреть возможность использования одного класса, и у них есть перечисление, которое ссылается на ' тип статистики (например, игрок или команда).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...