你其实是利用的数据库自身的id生成机制
你可以使用native,这样hibernate会根据数据库适配器中的定义去选择,对于oracle你可以用sequence,这是采用oracle sequence机制。
当然采用这些大批量的插入数据会降低效率,最好采用uuid.hex,由hibernate产生id。
你可以使用native,这样hibernate会根据数据库适配器中的定义去选择,对于oracle你可以用sequence,这是采用oracle sequence机制。
当然采用这些大批量的插入数据会降低效率,最好采用uuid.hex,由hibernate产生id。
解决方案 »
- 菜鸟问题 Hibernate.STRING 类型出错
- 如何给hibernate的查询结果集指定泛型??
- struts2问题
- 求List集合中对象内时间元素排降序方式
- iBatis在进行DDL语言操作的时候遇到嵌套事务怎么解决?
- struts s:action
- EJB3.0方法调用的性能问题
- 点击链接执行某函数问题,高手进来帮帮忙,谢谢了
- 我有1.6亿条文本纪录1,另外有40万条的文本纪录2,我要看不在1中的2的纪录,数据量较大,如何处理?jvm 的大小如何设置?
- 无论将1.2或者是1.0的struts-example.war COPY 到tomcat/webapps目录下,启动tomcat都出现错误!!!!!!
- 如何给Tomcat升级?
- 困扰很久的问题: logic:iterate
另外,uuid.hex产生的是一个很长的随机数吧,不符合自增的要求
在 插入数据的时候,主键列 的值为 index_id.nextval
<generator class="native" /> Oracle 用sequence比较常见
现在该学习学习sequence了。
<class name="..." table="CHILD"> //把java class对应到database table中
<id name="id" unsaved-value="0">//主键描述
<generator class="sequence">//采用oracle的sequence技术自动自增主键
<param name="sequence">SEQ_CHILD</param>
</generator>
</id>
SEQ_CHILD是你定义的序列名
让hibernate在oracle创建sequence不是开玩笑吗!
<generator class="increment">
也可以啊,只是不知道在并发上面会不会出问题