java - 无法保存鉴别器值。 (JPA Spring 数据+ hibernate )

标签 java spring hibernate jpa

我有以下情况:

基类:

@Entity(name = "BaseEntity")
@Inheritance(strategy= InheritanceType.JOINED)
@DiscriminatorColumn(name="DISCR_COLUMN", discriminatorType = DiscriminatorType.STRING)
@Table(name = "base")
@DiscriminatorOptions(insert = true,force=true)
public abstract class Base implements Serializable {

子类:

@Entity(name = "SubclassEntity")
@DiscriminatorValue("A")
@Table(name="subclass")
@PrimaryKeyJoinColumn(name = "subclass_id", referencedColumnName = "base_id")
@DiscriminatorOptions(insert = true,force=true)
public class Subclass extends Base {

存储库:

public interface BaseRepository extends JpaRepository<Base, String>, JpaSpecificationExecutor<Base> {

我遇到的唯一问题是当我想创建一个新的子类时

repository.saveAndFlush(Base base);

鉴别器值未保存,并且在数据库中显示为 NULL。我认为它是由 hibernate 自动设置的,不是吗?

最佳答案

注意:请参阅下面的评论 (!)

<小时/>

根据http://en.m.wikibooks.org/wiki/Java_Persistence/Inheritance “连接、多表继承”部分:

Hibernate 不支持继承策略的鉴别器列:已加入。

关于java - 无法保存鉴别器值。 (JPA Spring 数据+ hibernate ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20536705/

相关文章:

java - 了解 Hibernate 部分刷新行为

mysql - 如何使用 SpringBoot-MyBatis-MySQL 的 RESTFUL API 对 MySQL 数据库进行基本的 SELECT FROM 调用?

java - 使用 extjs 4 spring 上传图像文件

java - 当PK删除不存在的数据时,如何处理Spring Data JPA删除?

java - SetContentView 不起作用

hibernate - Vaadin SQLContainer + Grails 给出错误 "org.postgresql.util.PSQLException: This connection has been closed"

java - 如何在 angularjs 中使用 $resource 来使用 Spring Restful Web 服务

java - 在 Java 中连接到 MySQL 数据库时访问被拒绝

java - 从 IntelliJ 运行 JavaFX 和 Swing 时出现段错误

java - 限制开发人员访问 UAT 和生产环境但仍能完成任何工作的最佳实践