Hibernate продолжает создавать таблицы для моих перечислений - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть два различных перечисления, которые находятся в двух разных таблицах (они имеют одинаковую структуру, но разные значения).

Это моя первая таблица с именем TYPE, из FIRST_SCHEMA

id   team   desc              days
1    "AB"   "Do Thins"        2
2    "CD"   "Other things"    3    

И это второе, называемое TYPE, от SECOND_SCHEMA.

id   team   desc                       days
1    "AB"   "Other other thins"        1
2    "CD"   "More and more things"     1

Я пытался отобразить это перечисление в Java с помощью аннотаций гибернации, и они выглядят так:

FirstEnum.java

@Entity
@Table(name = "TYPE", schema="FIRST_SCHEMA")
public enum FirstEnum implements SuperEnum<FirstEnum> {

    DO_THINGS(1, "AB", "Do things", 2),
    OTHER_THINGS(2, "CD", "Other things", 3);


    @Id
    @NotNull
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private final int value;

    @Column(name = "team")
    private final String team;

    @Column(name = "desc")
    private final String dec;

    @Column(name = "days")
    private final int days;

    //getters and setters
}

SecondEnum.java

@Entity
@Table(name = "TYPE", schema="SECOND_SCHEMA")
public enum SecondEnum implements SuperEnum<SecondEnum> {

    DO_THINGS(1, "AB", "Other other thins", 2),
    OTHER_THINGS(2, "CD", "More and more thingsS", 3);


    @Id
    @NotNull
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private final int value;

    @Column(name = "team")
    private final String team;

    @Column(name = "desc")
    private final String dec;

    @Column(name = "days")
    private final int days;

    //getters and setters
}

И класс, который использует один из этих типов, отображается следующим образом:

Foo.java

@Table(name = "TABLE", schema="FIRST_SCHEMA")
@Entity
public class Foo extends Bar implements Serializable {
    private static final long serialVersionUID = 1L;


    @Enumerated(EnumType.ORDINAL)
    @Column(name = "id_type")
    private FirstEnum type;

    //getters and setters
}

Если я установлю в моем persistence.xml строку:

<property name="hibernate.hbm2ddl.auto" value="update" />

до

<property name="hibernate.hbm2ddl.auto" value="none" />

Работает как задумано, он не создает новую таблицу «тип».Но если нет, он создаст эту пустую таблицу, даже если у меня уже есть таблицы типов.

Что я неправильно отображаю?

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