1.uuid是产生一个32位的字符串,所以在数据库主键字段的大小上必须要大于等于32位。另外如果之前在库表设置了触发器和sequence,那么即使是采用uuid主键生成策略,那么hibernate在做插入时,uuid将会失效,而是采用sequence中的值作为主键id。相当于先用uuid做主键id,但是在插入之前又被sequence中的值覆盖掉了。这点必须注意。删除掉该表的触发器即可恢复。
2.native 意味着主键生成机制的实现方式将交给hibernate决定。hibernate 将根据底层数据库适配器dialect 的定义,采用不同数据库特定的主键生成方式。(对于SQLServer和MySQL自动采用自增字段,对于oracle自动采用Sequence生成主键)
注意:在这种情形下,hibernate会默认使用名为hibernate_sequence的序列,如果oracle中没有设置,Console控制台将会产生“Hibernate: select hibernate_sequence.nextval from dual Caused by: java.sql.SQLException: ORA-02289: 序列(号)不存在”的错误。那么应当在oracle中添加名为hibernate_sequence的序列。
或者采用如下方法来指明具体使用哪个序列:
<generator class="native">
<param name="sequence">HUSER_SEQ</param>
</generator>
3.sequence 意味着将采用数据库提供的sequence机制产生主键。在hbm.xml映射文件中,如果采用这种主键映射机制,那么必须明确指定用哪个序列来产生主键。如:
<id name="userId" type="java.lang.Long">
<column name="USER_ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_USER</param>
</generator>
</id>
分享到:
相关推荐
Hibernate各种主键生成策略详解,包括 assigned increment hilo seqhilo sequence identity native uuid foreign uuid.hex sequence-identity 等
oracle数据库id为uuid类型时自动生成id的工具类,不再依赖sequence自增长
Hibernate主键生成方式 1.identity方式 2.increment方式 3.assigned方式 4.sequence方式 5.native方式 6.UUID方式
用hibernate形式的uuid的生成类
通过hibernate的组件生成uuid的代码
Hibernate用UUID作为主键的Demo,采用Java默认的方法,来生成对应的ID后,存储到数据库中
使用Java的Util.UUID生成32位的有序与无序id
本资源为原创. 其中剖析了hibernate+JPA对主键的生成方式的分类,以及在真实项目中如何使用,并且剖析各种数据库间的主键序列(sequence)原理以及使用.
ID ID(Hex) Name ID ID(Hex) Name ID ID(Hex) Name 1 0001 US7ASCII 2 0002 WE8DEC 3 0003 WE8HP 4 0004 US8PC437 5 0005 WE8EBCDIC37 6 0006 WE8EBCDIC500 7 0007 WE8EBCDIC1140 8 0008 WE8EBCDIC285 9 0009
公司实际项目中采用UUID算法生成主键的工具类,有需要的朋友们可以拿去
采用纯C的方式生成全球唯一ID,guid,采用linux下的代码移植过来的,软件采用vc6编译
linux 更换 eth1修改为eth0之修改uuid
Unity生成设备唯一UUID,代码+样例
java 生成8位UUID,解决UUID2太长的问题,欢迎下载。后续代码,陆续放出
uuid 生成不重复ID3万个 检测到重复就重试生成,把生成的id好,写入txt文档中
es种一共两种主键生成策略,一个是手动指定和一个是自动生成 1.document的id 1)根据应用情况来说,是否满足是否指定document id的手动指定,一般情况,是从某些其他的系统中,导入一些数据到es时,会采用这种方式,...
PB生成UUID
uuid 生成器 UUID_GEN.exe java 写的UUID的生成器,为了上传方便,所以我没有上传jer,下载者需要将jer和该exe文件放入到同一个文件夹下方可运行!
有序UUID生成器 借鉴hibernate的UUID生成器 CustomVersionOneStrategy。
React本机 react-native-uuid是标准A通用唯一标识符(UUID)URN命名空间的零依赖TypeScript实现。 请注意,该库使用基于Math.random伪随机生成器。 具有硬件支持的新版本是WIP。 受以下方面的启发:纳米非常感谢...