java@DiscriminatorValue类型不匹配:无法从整数转换为字符串
虽然我将父类定义为使用Integer类型的鉴别器列,但编译器始终为使用Integer鉴别器值的子类提供错误:Type mismatch: cannot convert from Integer to String
@Table(name="ITEMS")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="ITEM_CATEGORY",discriminatorType=DiscriminatorType.INTEGER)
public class Item { ....}
@Entity
@DiscriminatorValue(value=ItemCategory.Values.LEARNING_DUTY)
public class LearningDuty extends Item {...}
public static class Values {
public static final Integer LEARNING_DUTY = 3;
}
pom文件:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring.version>5.0.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
我尝试清理项目并重建,重新启动IDE,但问题仍然存在 我用的是STS4
# 1 楼答案
Java是一种静态类型语言。因此
discriminatorType=DiscriminatorType.INTEGER
无法更改DiscriminatorValue
的value
的类型It's explained e.g. here:
因此,必须按如下方式指定鉴别器值: