Hibernate怎样把一个Oracle中的表的主键设置成自增,在MyEclipse中又怎样设置自增主键的生成策略?

如题所述

第1个回答  2009-05-02
oracle想设置自增长需要用到序列。
用hibernate去做的话。
比如想让id自增长。
第一,建表的时候id设置成主键;
第二,映射的时候选择Id Generator选择sequence;
第三,修改*.hbm.xml文件id的相应位置为:
<id name="ID" type="java.lang.Long">
<column name="ID" precision="10"
<generator class="sequence">
<param name="sequence">ID</param>
</generator>
</id>
第2个回答  推荐于2016-02-27
oracle都用sequence
可以直接用native,hibernate会根据底层数据库自行判断采用sequence。
<id name="id" type="long" column="ID">
<generator class="native"/>
</id>
或直接用sequence
<generator class="sequence">
<param name="sequence">user_id_sequence</param>
</generator>
这种情况首先要先在数据库中建立了user_id_sequence的序列本回答被提问者采纳
第3个回答  2009-05-02
修改*.hbm.xml文件id的相应位置为:
<id name="id" column="id" unsaved-value="null">
<generator class="native" />
</id>
第4个回答  2009-05-03
用mysql最简单了

oracle怎么把主键设置自动增长
第一种,通过序列以及触发器实现主键自增长。这种方式适用于直接使用JDBC连接数据库。这种方式将主键自增长的任务完全交给数据库,我们无需在代码层面上进行任何控制。第二种,通过序列以及Hibernate配置实现自增长。这种方式适用于通过Hibernate连接数据库的方式。这种方式在数据库上创建序列,通过配置在POJO类...

HIBERNATE无法将NULL值插入列'id',一个主键自增问题
在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence), 而在Interbase中使用 生成器(generator)。返回的标识符是long, short或者 int类型的。hilo 使用一个高\/低位算法高效的生成long, short 或者 int类型的标识符。给定一个表和字段(默 认分别是 hibernate_unique_key 和next_hi)作为高...

mysql设置了主键自增,但java插入仍需要插入主键内容,如果不插入提示类型...
有设置主键自增的,要把需要插入的列名都列出来(不需要主键列),这样就可以。

mysql 外键约束,使用hibernate映射表,主键采用uuid-hex方式
一对一的话就要用int auto-increment 如果你是oracle数据库的话要用sequence 建议你用myeclipse的反向工程创建表结构 你去搜索一下吧 不需要你自己写hbm.xml文件的

Oracle的触发器和hibernate的主键冲突
hibernate 的配置采用navtive所以id是采用当前数据库自增方式sequence 而你oracle本身中又有触发器自增主键,你在插入数据时,sequence被加了两次。所以你插入的数据都是2.4.6这样的偶数。解决方法:1.删除触发器 2.hibernate中的主键方式采用其他的。比如uuid ...

Oracle数据库采用哪种主键生成策略
Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用)数据库中的语法如下:MySQL:create tablet_user(id int auto_increment primary key, name varchar(20));SQL Server:create tablet_user(id int identity(1,1) primary key, name varchar(20));2、sequence:DB2、Oracle均...

如何用java代码将oracle表中number字段原有数值设置为空?
number 是数值类型 空 是字符类型 数值型可转化为字符型 但只有符合 数值类型的字符才可以转换成数值(比如 '1','2',等数字 如果是 '字' 就不能转换成数字了)如果你想得到一个空值 只能 设置符合数值类型的量。

java eclipse怎样自动生成hibernate配置映射文件?
1、创建数据库,创建相应的表;2、点击图标,选择MyEclipse Datebase Explorer;3、右击空白区域,选择new菜单,根据提示创建数据库连接,创建好后会显示所创建的连接名,如图mysqldb是创建的数据库连接;4、选择需要添加hibernate映像文件的工程右击--->MyEclipse-->Add Hibernate Capabilities;5、出现如图...

MyEclipse配置开发
首先,在MyEclipse中新建一个工程。在左侧的Package Explorer面板中右键选择“new”->“project…”并选择“MyEclipse”->“J2EEProjects”->“WebProject”。点击“next”进入下一步,然后按照提示完成相关字段的输入,最后点击“Finish”。这样,你就建立了一个数据库连接。接着,在新建的工程上右键,选择...

如何将oracle数据库转换成mysql数据库,现在公司有急用,方法可用的话再...
还有一个问题,如果您的应用要直接使用Oracle的某个序列,那么您只能在MySQL里面模拟实现一个,具体方法就是利用MySQL的自增字段实现的。 三、触发器的移植 首先,MySQL在6.0以后才支持触发器! 触发器的移植没有现成工具,因为两者之间的语法差异较大,您只能通过手工对照着原来的逻辑一个一个添加。

相似回答