У меня есть два различных перечисления, которые находятся в двух разных таблицах (они имеют одинаковую структуру, но разные значения).
Это моя первая таблица с именем 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" />
Работает как задумано, он не создает новую таблицу «тип».Но если нет, он создаст эту пустую таблицу, даже если у меня уже есть таблицы типов.
Что я неправильно отображаю?