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 生成表时就可以连父类的字段一起生成了

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值