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
    
  • 相关阅读:
    Codeforces Round #541 (Div. 2) D 并查集 + 拓扑排序
    Educational Codeforces Round 60 D dp + 矩阵快速幂
    Educational Codeforces Round 60 C 思维 + 二分
    Codeforces Round #544 (Div. 3) dp + 双指针
    Codeforces Round #542(Div. 2) CDE 思维场
    UVA
    UVA
    UVA
    UVA
    UVA
  • 原文地址:https://www.cnblogs.com/gmhappy/p/11863984.html
Copyright © 2011-2022 走看看