首先,要想使用数据库中配置的默认值就必须不让hibernate覆盖了默认值,需要配置property insert="false" update="false",告诉hibernate不对该属性执行insert、update操作,这要就不会覆盖我们在数据库中配置的默认值了。除此之外,我们还需要配置hibernate对该表的操作,dynamic-insert="true" dynamic-update="true",

实现动态的向数据库中插入值,只insert,update非空的属性值,对于NULL的属性值不插入数据库,这要就可以避免NULL覆盖数据库表中设置的默认值。

 <class name="com.tea.lms.model.UserCourse" table="t_user_course"
catalog="lms" lazy="false" dynamic-insert="true" dynamic-update="true">
<!-- 这里设置dynamic-insert="true" dynamic-update="true" 是hibernate在插入数据时只会插入非NULL值,空值不会插入数据库中 -->
<id name="id" type="long">
<column name="id" not-null="true" length="20"></column>
<generator class="native"></generator>
</id>
<many-to-one name="user" class="acc.model.User" cascade="delete"
lazy="false">
<column name="user_id"></column>
</many-to-one>
<many-to-one name="course" class="com.tea.lms.model.Course"
cascade="delete" lazy="false">
<column name="course_id"></column>
</many-to-one>
<many-to-one name="lastUserItem" class="com.tea.lms.model.UserItem"
cascade="all" lazy="false">
<column name="last_user_sco_id"></column>
</many-to-one>
<property name="regTime" not-null="true" type="timestamp"
insert="false" update="false"> <!-- java类型,insert、update都设置为false,使hibernate不会覆盖默认值 -->
<column name="reg_time"></column>
<type name="timestamp"></type> <!-- sql类型 -->
</property>
<property name="score" type="int">
<column name="score" length="11"></column>
</property>
<property name="pass" type="int">
<column name="pass" length="11"></column>
</property>
</class>

hibernate配置好后还没有完,我们还需在mysql中相关配置,处理配置timestamp列的默认值为CURRENT_TIMESTAMP还不行。由于mysql新版本中对默认值的插入进行了新规定,只有当当前列约束非空,并且没有插入值时才采用默认值进行插入。所有我们还需要配置timestamp列约束NOT NULL

完工。

hibernate设置mysql的timestamp默认值技巧的更多相关文章

  1. MySQL设置当前时间为默认值的方法

    方法一.是用alert table语句: 复制代码代码如下: use test_db1; create table test_ta1( id mediumint(8) unsigned not nul ...

  2. 解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错

    解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错 学习了:https://www.cnblogs.com/cnhkzyy/p/9119339.html se ...

  3. input文本框设置和移除默认值

    input文本框设置和移除默认值 这里想实现的效果是:设置和移除文本框默认值,如下图鼠标放到文本框中的时候,灰字消失. 1.可以用简单的方式,就是给input文本框加上onfocus属性,如下代码: ...

  4. PHP——0128练习相关3——设置文本域的默认值

    都知道文本框的的默认值只要设置value属性即可但是文本域是没有value属性的要设置文本域的默认值只要<textarea>默认值</textarea>即可简单吧,呵呵..

  5. 设置Input标签Date默认值为当前时间

    需求:想设置Imput标签Date默认值为当前时间,通过JavaScript实现. <html> ...... <body> <input type="date ...

  6. 关于mysql字段时间类型timestamp默认值为当前时间问题

    今天把应用部署到AWS上发现后台修改内容提交后程序报错,经过排查发现是更新数据的时候,有张数据表中的一个timestamp类型的字段默认值变成了"0000-00-00 00:00:00.00 ...

  7. 【转】MySQL datetime数据类型设置当前时间为默认值

    转自http://blog.csdn.net/u014694759/article/details/30295285 方法一: MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认 ...

  8. mysql升级到5.7时间戳(timestamp)默认值报错

    原文:mysql升级到5.7时间戳报错 往数据库里创建新表的时候报错: [Err] 1067 - Invalid default value for 'updateTime' DROP TABLE I ...

  9. Mysql 修改字段默认值

    环境:MySQL 5.7.13 问题描述:建表的时候,users_info表的role_id字段没有默认值,后期发现注册的时候,需要提供给用户一个默认角色,也就是给role_id字段一个默认值. 当前 ...

随机推荐

  1. hdu4123-Bob’s Race(树形dp+rmq+尺取)

    题意:Bob想要开一个运动会,有n个房子和n-1条路(一棵树),Bob希望每个人都从不同的房子开始跑,要求跑的尽可能远,而且每条路只能走最多一次.Bob希望所有人跑的距离的极差不大于q,如果起点的编号 ...

  2. exercise.tour.go google的go官方教程答案

    /* Exercise: Loops and Functions #43 */ package main import ( "fmt" "math" ) fun ...

  3. uCos 之 TaskIdle() 注意事项【worldsing笔记】

    在大多OS里都存在Idle线程或任务,同样uCos也不例外,为什么估计很少有人细研究.为什么设立Idle? 能不能去了? 首先看看uCos中关于Idle的代码做个介绍: config.h里对Idle的 ...

  4. C#操作sql通用类 SQLHelper

    Codeusing System; using System.Data; using System.Configuration; using System.Web; using System.Web. ...

  5. 总结一下ERP .NET程序员必须掌握的.NET技术

    总结一下ERP .NET程序员必须掌握的.NET技术,掌握了这些技术工作起来才得心应手   从毕业做.NET到现在,有好几年了,自认为只能是达到熟练的水平,谈不上精通.所以,总结一下,自己到底熟练掌握 ...

  6. nginx利用image_filter动态生成缩略图

    转自:http://www.nginx.cn/2160.html "我如今是有些图片须要生成缩略图.这个如今加了image_filter这个已经实现了.但我不知道怎么样才干訪问我上传的原图& ...

  7. hdu4081 次小生成树变形

    pid=4081">http://acm.hdu.edu.cn/showproblem.php?pid=4081 Problem Description During the Warr ...

  8. 第十一章 Function类型

    在ECMAScript中,Function(函数)类型实际上是对象.每个函数也是Function类型的实例,而且都与其它引用类型一样具有属性和方法.由于是函数对象,因此函数名实际上也是一个指向函数对象 ...

  9. C#_dropdownlist_2

    string deptId =Request.Form["depts"].Trim(); Html.DropDownList()赋默认值: 页面代码如下: <%        ...

  10. java使用Thumbnailator操作图片

    Thumbnailator 是一个用来生成图像缩略图.裁切.旋转.添加水印等操作的 Java 类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图. Thumbnailato ...