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

目录
  • 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; // 更新时间
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Spring Boot中使用Spring-data-jpa实现数据库增删查改

    在实际开发过程中,对数据库的操作无非就"增删改查".就最为普遍的单表操作而言,除了表和字段不同外,语句都是类似的,开发人员需要写大量类似而枯燥的语句来完成业务逻辑. 为了解决这些大量枯燥的数据操作语句,我们第一个想到的是使用ORM框架,比如:Hibernate.通过整合Hibernate之后,我们以操作Java实体的方式最终将数据改变映射到数据库表中. 为了解决抽象各个Java实体基本的"增删改查"操作,我们通常会以泛型的方式封装一个模板Dao来进行抽象简化,但是这

  • Spring Boot 添加MySQL数据库及JPA实例

    最近在学习Spring Boot,继续前面的学习,这一次我们加入MySQL数据库和JPA. 配置: pom.xml文件 <!-- 添加Mysql和JPA--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dep

  • SpringBoot连接MYSQL数据库并使用JPA进行操作

    今天给大家介绍一下如何SpringBoot中连接Mysql数据库,并使用JPA进行数据库的相关操作. 步骤一:在pom.xml文件中添加MYSQl和JPA的相关Jar包依赖,具体添加位置在dependencies中,具体添加的内容如下所示. <!--数据库相关配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-

  • Springboot使用Spring Data JPA实现数据库操作

    SpringBoot整合JPA 使用数据库是开发基本应用的基础,借助于开发框架,我们已经不用编写原始的访问数据库的代码,也不用调用JDBC(Java Data Base Connectivity)或者连接池等诸如此类的被称作底层的代码,我们将从更高的层次上访问数据库,这在Springboot中更是如此,本章我们将详细介绍在Springboot中使用 Spring Data JPA 来实现对数据库的操作. JPA & Spring Data JPA JPA是Java Persistence API

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

    目录 JPA save()方法null值覆盖掉mysql预设的默认值 覆盖原因 解决办法 data jpa动态插入(null为sql默认值,utime自动更新 ) JPA save()方法null值覆盖掉mysql预设的默认值 覆盖原因 save()方法在没有参数传进去的时候默认是null值,而mysql表中该字段设置为可以为null值,这时虽然我们设置了默认值,可null值还是会把默认值覆盖掉. 解决办法 将该字段设置为不允许null值即可,这样null值就会被替换为默认值. data jpa

  • JPA save()方法将字段更新为null的解决方案

    这篇文章主要介绍了JPA save()方法将字段更新为null的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天在开发上碰到一个问题,在做页面展示的时候传给前端十个字段,前端修改了其中3个的值,所以只传了3个值给后端,其余字段默认为null,更新后其他7个字段在全部变为了空值. 在前端没法全量回传所有属性的前提下,由后端来处理这类问题. 解决方法: 1.写一个工具方法(UpdateUtil) 用来筛选出所有的空值字段 2.更新时先通

  • Django 解决由save方法引发的错误

    最近项目中的资产的任务状态频频出现问题,查看日志文件,看代码逻辑,也没发现什么具体的错误,总是过段时间就会出现一个表的字段没有更新的问题,很头疼. 开始时,觉得是没有添加事务,所以同时更新两个不同的表,其中一个表的内容没有写进去:加了事务后,又出现这种问题. 后来看代码,发现有两个线程在同一时间先后修改同一个表,问题来了,django的save()会更新所有的字段. 举个例子,我有两个线程分别修改User表,thread1修改User表的name字段,thread2修改User表的email字段

  • 解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题

    这是一个项目中常见的需求,el-select 为下拉多选,默认值不可删除,或者指定值不可删除. 实现效果: el-select 如下源码中 tag closable 属性为 el-select 的 disabled 属性,所有明显不支持. 解决思路(从el-select 的角度来考虑,其他组件组合的情况暂不考虑) 想要实现某些选项是不删除,1.需要tag 不可删除,2.options 不可选择 options 不可选择很好实现,只需要给一个disabled属性.tag 不可删除才是关键.下面是我

  • MySQL表字段设置默认值(图文教程及注意细节)

    环境 MySQL 5.1 + 命令行工具 问题 MySQL表字段设置默认值 解决 复制代码 代码如下: --SQL: CREATE TABLE test( i_a int NOT NULL DEFAULT 1, ts_b timestamp NOT NULL DEFAULT NOW(), c_c char(2) NOT NULL DEFAULT '1' ); --以下SQL不合法 --time_d time NOT NULL DEFAULT CURTIME(), --date_e date NO

  • Spring JPA之save方法示例详解

    目录 一.save(单条添加) 源码 service 层 control层 二.saveAll(批量添加) 源码 service control层 一.save(单条添加) 源码 @Transactional @Override public <S extends T> S save(S entity) { Assert.notNull(entity, "Entity must not be null."); if (entityInformation.isNew(enti

  • angular select 默认值设置方法

    如下所示: <select ng-model="selected" ng-options="x.id as x.name for x in users"></select> $scope.users = [ {name:'a',id:'1'}, {name:'b',id:'2'}, {name:'c',id:'3'} ]; $scope.selected='2';//id的值,区分类型 $scope.selected=$scope.users

  • Python使用函数默认值实现函数静态变量的方法

    本文实例展示了Python使用函数默认值实现函数静态变量的方法,具体方法如下: 一.Python函数默认值 Python函数默认值的使用可以在函数调用时写代码提供方便,很多时候我们只要使用默认值就可以了. 所以函数默认值在python中用到的很多,尤其是在类中间,类的初始化函数中一帮都会用到默认值. 使用类时能够方便的创建类,而不需要传递一堆参数. 只要在函数参数名后面加上 "=defalut_value",函数默认值就定义好了.有一个地方需要注意的是,有默认值的参数必须在函数参数列表

  • Python中自定义函方法与参数具有默认值的函数

    目录 一.Python中自定义函数的方法 1自定义函数的语法 2自定义函数的实现 3自定义函数的调用 二.Python中参数具有默认值的函数 1参数是常量默认值的函数 2参数是常量默认值的函数 一.Python中自定义函数的方法 在Python编程中,可以使用已经定义好的函数,也可以自定义函数实现某些特殊的功能. 1 自定义函数的语法 在Python中,自定义函数的语法如下所示: def 函数名(参数):     函数体 其中,def是关键字:之后跟的是函数名,通过函数名来调用该函数:函数名之后

  • 使用Lombok @Builder注解导致默认值无效的问题

    目录 @Builder注解导致默认值无效 原因分析 lombok@Builder忽略属性默认值的坑点 1. 简单使用 2. 默认值问题 3. 修改属性值 @Builder注解导致默认值无效 使用Lombok注解可以极高的简化代码量,比较好用的注解除了@Data之外,还有@Builder这个注解,它可以让你很方便的使用builder模式构建对象,但是今天发现@Builder注解会把对象的默认值清掉. 像下面这段代码,会导致对象的name属性变为null: public class BuilderT

随机推荐