`
langgufu
  • 浏览: 2303467 次
  • 性别: 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则可以,这个需要百度一下,看看怎么回事。

分享到:
评论

相关推荐

    hibernate实体映射文件字段设置默认值

    首先,我们需要了解一个基本的Hibernate映射文件结构: ```xml &lt;hibernate-mapping&gt; &lt;!-- 映射类的属性 --&gt; &lt;/hibernate-mapping&gt; ``` 这里的`&lt;class&gt;`标签表示映射到特定的Java类,其属性`name`指定了对应的...

    hibernate-annotations.jar

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

    hibernate。hbm.xml配置详解

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

    Hibernate注解大全

    Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用程序中实现数据库操作。它通过提供强大的映射工具和服务,简化了基于Java的应用程序开发人员对数据库的访问过程。在Hibernate中,通过使用注解可以更加...

    hibernate注解说明文档

    - **hilo**:在数据库中建立一张额外的表,默认表名为`hibernate_unique_key`,字段为`next_hi`(比较少用)。 - **assigned**:在插入数据时主键由程序处理,这是默认生成策略,等同于JPA中的`AUTO`。 这些注解...

    hibernate注解

    Hibernate是一个开源的对象关系映射(ORM)框架,它能够将Java对象映射到数据库表中,并管理这些对象的生命周期。使用Hibernate可以大大简化Java应用与数据库交互的过程,减少代码量,提高开发效率。在Hibernate中,...

    hibernate注解配置

    Hibernate 是一款强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互过程。在使用Hibernate的过程中,开发者可以通过注解来实现对象与数据库表之间的映射,这种方式更加简洁且易于理解。本文将...

    DB2 与ORACLE的比对.docx

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

    hibernate配置详细

    这里指定了类名、映射的表名、模式(schema)以及目录(catalog)等信息,这些信息对于Hibernate正确地将Java对象映射到数据库表非常重要。 以上就是基于提供的文件信息所总结的Hibernate配置相关知识点。希望这些详细...

    hbm.xml说明

    通过该文件,开发人员可以灵活地控制对象-关系映射的细节,包括表名、字段映射、主键生成策略等。下面将详细介绍 `hbm.xml` 文件中常见的几个标签及其属性。 #### 二、class标签 `class` 标签是 `hbm.xml` 文件中...

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

    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