zoukankan      html  css  js  c++  java
  • Java JPA设置默认值、Timestamp设置、自动获取时间

    设置默认值

    @Column(name="state",columnDefinition="tinyint default 0")
    private Integer state=0;
    

    columnDefinition在创建表的时候使用

    其他时候可以采用直接赋值的方式:

    private Integer state=0;
    

    Timestamp设置

    注解@org.hibernate.annotations.Generated来标识一个已生成属性

    @Column(name="CREATE_TIME",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP",insertable = false,updatable = false)
    @Generated(GenerationTime.INSERT)
    private Timestamp createTime;
    

    GenerationTime的可用的设置选项是ALWAYSINSERT

    当使用ALWAYS的时候,Hibernate每次执行SQL UPADATE或者INSERT插入的时候就会刷新实体

    使用GenerationTime.INSERT,只会在SQL INSERT的时候出现,来获取数据库的默认值

    属性也应该标识为只读,只读属性使用注解@Columnupdatableinsertable来实现

    如果两个都设置了false,属性列表就用于不会在INSERT或者UPADATE语句中出现了,这些列的数值就由数据库来产生值

    @ColumnDefault属性注解,设置列表的默认属性,当hibernate导出和生成SQL schenma DDL的时候

    @Temporal注解来声明映射的SQL数据类型,如果使用了converter转换器之后,注解是不需要了

    @Column(columnDefinition="timestamp default current_timestamp comment '活动开始时间'")可以设置默认值、可以生成注释

    自动创建时间、修改时间

    1.实体类加注解

    /**
     * 创建时间
     */
    @CreatedDate
    @Column(name = "create_time")
    private Date createTime;
    
    /**
     * 修改时间
     */
    @LastModifiedDate
    @Column(name = "modify_time")
    private Date modifyTime;
    

    2.实体类头加注解

    @EntityListeners(AuditingEntityListener.class)
    

    3.SpringBoot启动类加注解

    @EnableJpaAuditing
    
  • 相关阅读:
    51nod——1174 区间中最大的数(ST)
    「学习笔记」Ubuntu 下手动安装 Emacs
    [学习笔记] 2-SAT
    「解题报告」 [JXOI2017]数列 (DP)
    「解题报告」 [UOJ#62] 怎样跑得更快 (莫比乌斯反演)
    「学习笔记」杜教筛
    「学习笔记」Dirichlet卷积 莫比乌斯函数 莫比乌斯反演
    「学习笔记」向量外积(叉乘)
    网络流24题
    「解题报告」[网络流24题] 16.数字梯形问题 (最大费用最大流)
  • 原文地址:https://www.cnblogs.com/gmhappy/p/11863984.html
Copyright © 2011-2022 走看看