提问:hibernate里主键生成(native)的问题 没用过oracle,我用的是mysql,主键设置为自增,却是只能使用native,不能用sequence 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是使用 ANT 来发布系统的。用 xdoclet.modules.hibernate.HibernateDocletTask 来生成 *.hbm.xml 用 org.hibernate.tool.hbm2ddl.SchemaExportTask 来生成 创建表的 SQL 语句我列一下两种情况的对比,供楼主参考一下。这种是使用 native 的。 /** * @hibernate.id * column="id" * generator-class="native" * unsaved-value="null" */ public Long getId() { return id; }这种是使用 sequence 的。 /** * @hibernate.id * column="id" * generator-class="sequence" * unsaved-value="null" * * @hibernate.generator-param * name="sequence" * value="app_user_sequence" */ public Long getId() { return id; }在 Mysql 与 PostgreSql 上观察Mysql 使用 native 的时候, 数据类型是自增Mysql 不能使用 sequence.PostgreSql 使用 native 的时候,数据类型没有特别的变化。但是生成出来的SQL ,会有一个 CREATE SEQUENCE hibernate_sequence 的语句。也就是说,虽然你使用的是 native, 但是 Hibernate 还是使用 序列号(hibernate_sequence)来完成 这个序号的生成工作。PostgreSql 使用 sequence 的时候。生成 创建表的 SQL 语句时,就自动生成了 app_user_sequence 这个序列号。 楼主的 Oracle 和 PostgreSql 一样,都是支持序列号的。可以参考参考。 关于学习struts2的一些困惑 LUCENE:知道document number,怎样返回对应的document的stored field呢?? struct2学习:回到网站根目录 高手進:Hibernate問題; 手机mini页面乱码问题 Hibernate中一对多和继承联合使用的问题 求助~~`TOMCAT为什么不能用? 有人知道关于tomcat启动时...... 哪儿有JAVA、J2EE的学习资料下载?谢谢! javax.xml.parsers 包那里可以下载到???? 谁有spring+hibernate+struts的项目和例子? FileUpload 帮助
/**
* @hibernate.id
* column="id"
* generator-class="native"
* unsaved-value="null"
*/
public Long getId() {
return id;
}
这种是使用 sequence 的。
/**
* @hibernate.id
* column="id"
* generator-class="sequence"
* unsaved-value="null"
*
* @hibernate.generator-param
* name="sequence"
* value="app_user_sequence"
*/
public Long getId() {
return id;
}
在 Mysql 与 PostgreSql 上观察Mysql 使用 native 的时候, 数据类型是自增
Mysql 不能使用 sequence.
PostgreSql 使用 native 的时候,数据类型没有特别的变化。
但是生成出来的SQL ,会有一个 CREATE SEQUENCE hibernate_sequence 的语句。
也就是说,虽然你使用的是 native, 但是 Hibernate 还是使用 序列号(hibernate_sequence)来完成 这个序号的生成工作。
PostgreSql 使用 sequence 的时候。
生成 创建表的 SQL 语句时,就自动生成了 app_user_sequence 这个序列号。 楼主的 Oracle 和 PostgreSql 一样,都是支持序列号的。可以参考参考。