栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Hibernate save时如何使用数据库端默认值?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Hibernate save时如何使用数据库端默认值?

null
即使将date列定义为
defaultSYSDATE
dbms端,date列在插入时仍会得到值的原因是,
default
仅当在查询中未为该列提供值时,才使用该列的值。这意味着
INSERTINTO
即使已经给出了它也不能出现在句子中
null

如果要

default SYSDATE
在DBMS端使用,则应配置
@Column
with
insertable=false
,以使列脱离SQL
INSERT


@Temporal(TemporalType.TIMESTAMP)@Column(name = "myDate", insertable=false)private Date myDate;

考虑到这种方法在创建实体时将始终忽略您提供给应用程序中属性的值。如果您确实确实希望有时提供日期,那么也许应该考虑使用数据库触发器来设置值而不是默认值。

除了使用

default SYSDATE
DBMS
的定义外,还有一种选择。当且仅当尚未分配日期时,才可以使用
@PrePersist
@PreUpdate
注释在保存/更新之前将当前日期分配给属性:

@PrePersistprotected void onCreate() {    if (myDate == null) { myDate = new Date(); }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/466988.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号