Springdata-jpa 自动建表 自定义设置数据长度和类型

假如我想在JPA中自动建表

字段名类型内存
nameIdchar22

如果我想用jpa创建一个这样的字段属性

@Column(name="nameid",columnDefinition="char(22)")
private String nameId;

下面是我的项目真实案例

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.*;
import javax.validation.constraints.Pattern;
import java.util.Date;

/**
 * @author 一只小小狗
 * @version 1.0.0
 * @ClassName EmployeeBean.java
 * @Description TODO
 * @createTime 2021年07月27日 21:25:00
 */
//@EntityListeners(AuditingEntityListener.class) 实体监听器 启动时间监听
@EntityListeners(AuditingEntityListener.class)
@Entity
@Table(name = "EMPLOYEE")
public class EmployeeBean {

    /**
     * 员工号 CHAR(11) E0000000001
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "Employee_id",columnDefinition = "char(11)")
    private Long id;

    /**
     * 员工姓名 VARCHAR2(40)
     */
    @Column(name = "Employee_name",length = 40)
    private String name;

    /**
     * 性别 CHAR(1) 0:女 1:男
     */
    @Pattern(regexp = "[01]")
    @Column(name = "Employee_gender",columnDefinition = "char(1)")
    private String gender;

    /**
     * 身份证号 CHAR(18)
     */
    @Pattern(regexp = "^([1-6][1-9]|50)\\d{4}(18|19|20)\\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$")
    @Column(name = "Employee_gender",columnDefinition = "char(18)")
    private String identityCard;

    /**
     * 出生日期 DATE  YYYY-MM-DD
     */
    @Column(name = "Employee_date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date date;

    /**
     * 家庭地址 VARCHAR2(100)
     */
    @Column(name = "Employee_address",length = 100)
    private String address;

    /**
     * 所属部门 CHAR(2)  01:金融一部
     *                  02:金融二部
     *                  03:创新中心
     */
    @Pattern(regexp = "(01|02|03)")
    @Column(name = "Employee_department",columnDefinition = "char(2)")
    private String department;

    /**
     * 创建时间 DATE
     */
    @CreatedDate
    @Column(name = "Create_Time",updatable = false,nullable = false,length = 50)
    private Date createTime;

    /**
     * 修改时间 DATE
     */
    @LastModifiedDate
    @Column(name = "Update_Time",nullable = false,length = 50)
    private Date updateTime;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小小狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值