Я пытаюсь запустить пример Inheritance type SINGLE TABLE
в Hibernate
. Однако при сохранении cat
и dog
я получаю следующую ошибку:
Unknown column 'DISCRIMINATOR' in 'field list'
Ниже приведены мои объекты
Animal
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="DISCRIMINATOR",discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue("Animal")
public abstract class Animal {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
int id;
String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void makeNoise();
}
Собака
@Entity
@DiscriminatorValue(value="Dog")
public class Dog extends Animal{
@Override
public void makeNoise() {
System.out.println("woof woof");
}
}
Кошка
@Entity
@DiscriminatorValue(value="Cat")
public class Cat extends Animal {
@Override
public void makeNoise() {
System.out.println("meow meow");
}
}
DDL для животных
insert into Animal (name,DISCRIMINATOR) values (?, 'Cat')