hibernate之生成的和默认的属性值(使用generated刷新实体)
来源:互联网 发布:yii2 商城源码 编辑:程序博客网 时间:2024/04/28 20:03
生成的和默认的属性值
如果类的一个特定属性有着数据库生成的值,通常在第一次插入实体行的时候。典型的数据库生成的值是创建的时间戳 , 还有其它默认值等.
每当hibernate给定义了已生成或默认属性的实体执行SQL INSERT或UPDATE时,它在插入默认值或生成值之后立即执行SELECT。因为设置了generated=always,hibernate会在插入后自动的执行一个select,给Java类中的属性设置,如果没有设置generated属性,需要显式调用session.flush()语句。这里就是说, 数据库默认生成值的字段,必须通过select后把值传给java实体的该属性。
使用property映射中的generated开关启用这个自动刷新:
<property name="lastModified" column="LAST_MODIFIED" update="false" insert="false" generated="always"/>
标记为数据库生成的属性还必须是非可插入和非可更新的,用insert和update属性进行控制它们。如果两者都设置为false,属性的列就永远不会出现在INSERT或者UPDATE语句中---属性值是只读的。而且,通常不在类中给不可变的属性添加公有的设置方法(这时应切换到字段访问).
关于generated=""的适用值说明:
never(默认):标明此属性值不是从数据库中生成, 也就是根本不用刷新实体类了。
insert:标明此属性值在insert的时候生成,但是不会在随后的update时重新生成。也就是只在insert情况下才会刷新实体类。
always:标明此属性值在insert和update时都会被生成。也就是在insert,update情况下都会刷新实体类。
例1:
例2:
因为有了dynamic-insert="true" dynamic-update="true", 那么没有设值的属性(age,createTime,updateTime)就不会出现在insert,update的数据库执行语句中,所以也就没有必要在各属性上使用insert="false" update="false"。
例3,比较generated="always",generated="insert":
输出日志:
最后要注意的是,数据库表的age,createTime,updateTime字段上都要有默认值,或者有触发器 ,不然上面所有例子的age,createTime,
updateTime在表中的值都是null.
- hibernate之生成的和默认的属性值(使用generated刷新实体)
- hibernate之生成的和默认的属性值(使用generated刷新实体) .
- hibernate使用generated之生成的默认属性值
- hibernate生成的默认的属性值
- 不能使用Hibernate Reverse Engineering生成实体类的原因
- 如何根据hibernate的实体类和实体类配置文件生成数据库的表
- 如何根据hibernate的实体类和实体类配置文件生成数据库的表
- Hibernate获得实体类的属性集合
- Hibernate 实体不生成表的原因
- Hibernate 使用原生SQL和实体之间的关联
- hibernate基本的配置-xml(实体映射)和简单使用
- hibernate 使用实体 和附加类 作为属性
- hibernate 实体类生成表 表没有生成的原因
- Hibernate的注释该如何使用? 属性 数据库中 字段 实体 级联删除
- Hibernate的注释该如何使用? 属性 数据库中 字段 实体 级联删除
- 使用java反射机制遍历实体类的属性和类型以及值
- 图文教程:使用MyEclipse的hibernate工具从数据库反向生成实体Bean
- Hibernate之实体对象的生命周期
- 9月11日学习总结
- 动态获取数据库中的数据作为loadrunner的参数
- 正则表达式笔记
- qt plugin
- qt plugin
- hibernate之生成的和默认的属性值(使用generated刷新实体)
- openSUSE 11.2 ADSL 宽带拔号连接网络
- hibernate之映射组件
- (一) Java数据结构与算法(第二版)笔记——大O表示法
- 如何判断是否是GBK和BIG5编码
- (二) Java数据结构与算法(第二版)笔记——冒泡排序
- (三) Java数据结构与算法(第二版)笔记——选择排序
- (四) Java数据结构与算法(第二版)笔记——插入排序
- Installing SESC simulator on Fedora 13