hibernate 自动建表 实体类继承父类 父类有主键 启动失败

项目中我们经常把实体类公共的属性抽取出来(主键ID,创建时间crateTime等),抽取成一个BasedModel,然后让有需要的实体类去继承。

package com.test.demo.model;

import org.hibernate.annotations.GenericGenerator;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import java.io.Serializable;

/**
 * 公共类
 */
@MappedSuperclass
public class BasedModel implements Serializable {


    private String id;

    @Id
    @Column(name = "ID")
    @GeneratedValue(generator="system-uuid")
    @GenericGenerator(name="system-uuid",strategy="uuid")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

然后启动时报错,查询出来说的时,没有主键。但是明明继承了公共类,为什么就创建失败了呢!后来才发现,主要原因是,公共类少一个注解

@MappedSuperclass

加上这个注解就ok了!

hibernate 生成表时就可以连父类的字段一起生成了

猜你喜欢

转载自blog.csdn.net/yapengliu/article/details/84860720