`
langgufu
  • 浏览: 2296263 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle时间字段默认值,hibernate映射

阅读更多

oracle时间字段默认值用sysdate:

create table table_name(

id number not null,

tempdate date default sysdate)

创建序列号

create sequence sequence_name increate by 1 start with 1 maxvalue 9999;

insert into table_name(id) values(sequence_name.nextval)

但是在程序中,我存储pojo时,属性为空,但是在数据库中却没取其默认值

在数据库字段是默认值时,如何设置hibernate,使得存储某条pojo时,数据库中出现相应字段默认值,如下:

1、在hibernate的xml配置文件中对有默认值字段的property添加(insert="false" update="false"):

<property name="N_ISOK" type="java.lang.Long" insert="false" update="false">

            <column name="N_ISOK" precision="22" scale="0" />
</property>

注:insert="false" update="false" 的作用是不对当前字段进行insert和update操作,这样hibernate就不会在未指明默认列的情况下将数据库表中默认值字段清空,但同时也会造成无法对此字段插入或更新非默认值。

这个办法会使得该字段永远无法进行插入或更新操作,只能一直是默认值。
2、数据库中表字段必须设置默认值:

N_ISOK     NUMBER(2) default 1


方法二(推荐):


在hibernate.xml中的class加入dynamic-insert="true" dynamic-update="true"


如:<class name="com.hibernate.bean.TLoginUser" table="T_LOGIN_USER" schema="CALLERMMS" dynamic-insert="true" dynamic-update="true">


注:dynamic-insert="true" dynamic-update="true" 的作用是当HQL语句中未指明的列将不进行insert和update操作,这样hibernate就不会在未指明默认列的情况下将数据库表中默认值字段清空。

这个灵活性更好,但该字段有值时,动态插入或更新,采用该字段值,若该字段无值,则采用默认值。

 

记住有默认值的字段一定不可允许为空,否则默认值无效,其必须是不空的,另hibernate映射配置文件中,属性转换数据类型我设为java.util.date,结果出错,设为date则可以,这个需要百度一下,看看怎么回事。

分享到:
评论

相关推荐

    关于Hinbernate中TimeStamp类型字段处理的小例子

    在Java编程领域,Hibernate是一个非常流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式操作数据库。本文将详细探讨在Hibernate中处理Timestamp类型字段的一些关键知识点,结合给出的"关于Hibernate中...

    hibernate-annotations.jar

    5. `@Column`:用于指定字段与表列的映射,可以设置长度、是否允许为空、默认值等属性。 6. `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`:这些注解用于描述对象间的关联关系,如一对一、一对多、多对多...

    hibernate。hbm.xml配置详解

    Hibernate 是一个流行的 Java 平台上的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。在 Hibernate 中,`hbm.xml` 文件是用于定义对象与数据库表之间映射的元数据文件。这篇文档将深入解析...

    Hibernate配置

    Oracle的默认值为10,但调整到适当值如50或100可能显著提高性能。 - `hibernate.jdbc.batch_size`: 设置批量操作的批次大小,如删除、更新和插入,较大的Batch Size可以减少数据库交互次数,提高性能。Oracle推荐的...

    Hibernate注解

    * 5.identity 使用SQL Server和MySQL的自增字段,这个方法不能放到Oracle中,Oracle不支持自增字段,要设定sequence(MySQL和SQL Server中很常用)。等同于JPA中的IDENTITY * 例:@GeneratedValue(generator = ...

    DB2 与ORACLE的比对.docx

    在 ORM 框架如 Hibernate 中,DB2 的 DATE 字段映射为 Java 的 `java.util.Date` 时,可能导致错误,需要改为 TIMESTAMP。 6. **分页处理**: - ORACLE 使用 `rownum` 进行分页,而 DB2 使用 `rownumber() over()`...

    自定义生产数据表字段说明文档

    ORM(对象关系映射)框架,如Hibernate或MyBatis,可以简化数据库操作,将Java对象与数据库表关联起来,提高开发效率。 3. **动态检索数据表**: 用户登录后,系统自动获取所有表的信息,这需要执行SQL查询。例如...

    36道面试常问的MyBatis面试题!.zip

    可以使用nullValue属性指定某个字段为NULL时的默认值。 34. **MyBatis的中的discriminator标签如何使用?** discriminator用于根据某个字段值的不同,选择不同的ResultMap进行映射。 35. **MyBatis如何处理复杂...

    java自定义注解实现由类自动生成表

    注解包含元素(也称为成员),这些元素可以有默认值,也可以接受参数。例如,我们可以定义一个名为`@GenerateTable`的注解,它可能包含`tableName`和`schemaName`等元素,用于指定要生成的表名和模式。 ```java ...

    Spring中文帮助文档

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

    Spring API

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

Global site tag (gtag.js) - Google Analytics