当前位置 : 主页 > 编程语言 > java >

解决JPA save()方法null值覆盖掉mysql预设的默认值问题

来源:互联网 收集:自由互联 发布时间:2021-12-01
目录 JPA save()方法null值覆盖掉mysql预设的默认值 覆盖原因 解决办法 data jpa动态插入(null为sql默认值,utime自动更新 ) JPA save()方法null值覆盖掉mysql预设的默认值 覆盖原因 save()方法在没有
目录
  • JPA save()方法null值覆盖掉mysql预设的默认值
    • 覆盖原因
    • 解决办法
  • data jpa动态插入(null为sql默认值,utime自动更新 )

    JPA save()方法null值覆盖掉mysql预设的默认值

    覆盖原因

    save()方法在没有参数传进去的时候默认是null值,而mysql表中该字段设置为可以为null值,这时虽然我们设置了默认值,可null值还是会把默认值覆盖掉。

    解决办法

    将该字段设置为不允许null值即可,这样null值就会被替换为默认值。

    data jpa动态插入(null为sql默认值,utime自动更新 )

     */
    @Setter
    @Getter
    @Table(name = "tb_order_history")
    @Entity
    @Data
    @DynamicInsert
    public class OrderHistory implements Serializable {
        private static final long serialVersionUID = -1L;
        @Id
        @Column(name = "id")
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id; // 订单标识id
        @Column(name = "user_id")
        private Long userId; // 用户标识
        @Column(name = "channel_id")
        private Long channelId; // 渠道标识
        @Column(name = "is_active")
        private int isActive;//订单是否关闭
        @Column(name = "status")
        private OrderStatus orderStatus;// 订单状态
        @Column(name = "ctime")
        private Timestamp ctime; // 创建时间
        @Column(name = "utime",updatable = false)
        private Timestamp utime; // 更新时间
    }

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。

    上一篇:Java 数据库连接池 Tomcat介绍
    下一篇:没有了
    网友评论