英文:
Unknown column 'DISCRIMINATOR' in 'field list'
问题
我正在尝试在Hibernate中运行“继承类型SINGLE TABLE”的示例。但是,在持久化“cat”和“dog”时,我遇到以下错误:
在字段列表中的未知列'DISCRIMINATOR'
以下是我的实体类:
**Animal**
```java
@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();
}
Dog
@Entity
@DiscriminatorValue(value="Dog")
public class Dog extends Animal {
@Override
public void makeNoise() {
System.out.println("woof woof");
}
}
Cat
@Entity
@DiscriminatorValue(value="Cat")
public class Cat extends Animal {
@Override
public void makeNoise() {
System.out.println("meow meow");
}
}
Animal的DDL
insert into Animal (name, DISCRIMINATOR) values (?, 'Cat')
<details>
<summary>英文:</summary>
I am trying to run an example of `Inheritance type SINGLE TABLE` in `Hibernate`. However While persisting `cat` and `dog` I am getting the below error:
Unknown column 'DISCRIMINATOR' in 'field list'
Below are my entities
**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();
}
**Dog**
@Entity
@DiscriminatorValue(value="Dog")
public class Dog extends Animal{
@Override
public void makeNoise() {
System.out.println("woof woof");
}
}
**Cat**
@Entity
@DiscriminatorValue(value="Cat")
public class Cat extends Animal {
@Override
public void makeNoise() {
System.out.println("meow meow");
}
}
**DDL for Animal**
insert into Animal (name,DISCRIMINATOR) values (?, 'Cat')
</details>
专注分享java语言的经验与见解,让所有开发者获益!
评论