Unknown column ‘DISCRIMINATOR’ in ‘field list’

huangapple 未分类评论52阅读模式
英文:

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 &#39;DISCRIMINATOR&#39; in &#39;field list&#39;

Below are my entities

**Animal**


    @Entity
    @Inheritance(strategy=InheritanceType.SINGLE_TABLE)
    @DiscriminatorColumn(name=&quot;DISCRIMINATOR&quot;,discriminatorType=DiscriminatorType.STRING)
    @DiscriminatorValue(&quot;Animal&quot;)
    
    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=&quot;Dog&quot;) 
    
    public class Dog extends Animal{
    
    	@Override
    	public void makeNoise() {
    System.out.println(&quot;woof woof&quot;);		
    	}
    
    }



**Cat**

    @Entity
    @DiscriminatorValue(value=&quot;Cat&quot;) 
    public class Cat extends Animal {
    
    	
    	
    	
    	
    	@Override
    	public void makeNoise() {
    System.out.println(&quot;meow meow&quot;);		
    	}
    
    }

**DDL for Animal**

    insert into Animal (name,DISCRIMINATOR) values (?, &#39;Cat&#39;)





</details>


huangapple
  • 本文由 发表于 2020年5月5日 20:57:55
  • 转载请务必保留本文链接:https://java.coder-hub.com/61613743.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定