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映射文件结构: ```xml <hibernate-mapping> <!-- 映射类的属性 --> </hibernate-mapping> ``` 这里的`<class>`标签表示映射到特定的Java类,其属性`name`指定了对应的...
5. `@Column`:用于指定字段与表列的映射,可以设置长度、是否允许为空、默认值等属性。 6. `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`:这些注解用于描述对象间的关联关系,如一对一、一对多、多对多...
Hibernate 是一个流行的 Java 平台上的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。在 Hibernate 中,`hbm.xml` 文件是用于定义对象与数据库表之间映射的元数据文件。这篇文档将深入解析...
Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用程序中实现数据库操作。它通过提供强大的映射工具和服务,简化了基于Java的应用程序开发人员对数据库的访问过程。在Hibernate中,通过使用注解可以更加...
- **hilo**:在数据库中建立一张额外的表,默认表名为`hibernate_unique_key`,字段为`next_hi`(比较少用)。 - **assigned**:在插入数据时主键由程序处理,这是默认生成策略,等同于JPA中的`AUTO`。 这些注解...
Hibernate是一个开源的对象关系映射(ORM)框架,它能够将Java对象映射到数据库表中,并管理这些对象的生命周期。使用Hibernate可以大大简化Java应用与数据库交互的过程,减少代码量,提高开发效率。在Hibernate中,...
Hibernate 是一款强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互过程。在使用Hibernate的过程中,开发者可以通过注解来实现对象与数据库表之间的映射,这种方式更加简洁且易于理解。本文将...
在 ORM 框架如 Hibernate 中,DB2 的 DATE 字段映射为 Java 的 `java.util.Date` 时,可能导致错误,需要改为 TIMESTAMP。 6. **分页处理**: - ORACLE 使用 `rownum` 进行分页,而 DB2 使用 `rownumber() over()`...
这里指定了类名、映射的表名、模式(schema)以及目录(catalog)等信息,这些信息对于Hibernate正确地将Java对象映射到数据库表非常重要。 以上就是基于提供的文件信息所总结的Hibernate配置相关知识点。希望这些详细...
通过该文件,开发人员可以灵活地控制对象-关系映射的细节,包括表名、字段映射、主键生成策略等。下面将详细介绍 `hbm.xml` 文件中常见的几个标签及其属性。 #### 二、class标签 `class` 标签是 `hbm.xml` 文件中...
ORM(对象关系映射)框架,如Hibernate或MyBatis,可以简化数据库操作,将Java对象与数据库表关联起来,提高开发效率。 3. **动态检索数据表**: 用户登录后,系统自动获取所有表的信息,这需要执行SQL查询。例如...
可以使用nullValue属性指定某个字段为NULL时的默认值。 34. **MyBatis的中的discriminator标签如何使用?** discriminator用于根据某个字段值的不同,选择不同的ResultMap进行映射。 35. **MyBatis如何处理复杂...
注解包含元素(也称为成员),这些元素可以有默认值,也可以接受参数。例如,我们可以定义一个名为`@GenerateTable`的注解,它可能包含`tableName`和`schemaName`等元素,用于指定要生成的表名和模式。 ```java ...
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. 动态...
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. 动态...