hibernate 字符的映射 SQLserver uniqueidentifier 类型
开始
<id name="id" column="id" type="java.lang.String"> <generator class="native"/> </id> 报错:org.hibernate.AssertionFailure: null identifier 但是能够保存到数据中数据,因为在数据库中 设定默认值newid()
后来更改为
<id name="id" column="id" type="java.lang.String"> <generator class="guid"/> </id> 没有错误提示了
问题:guid是什么意思呢
下面为摘自esffor的http://esffor.iteye.com/blog/96331esf
hibernate 主键生成器解释 Generator 可选的<generator>子元素是一个Java类的名字, 用来为该持久化类的实例生成唯一的标识。如果这个生成器实例需要某些配置值或者初始化参数, 用<param>元素来传递。 <id name="id" type="long" column="cat_id"> <generator class="org.hibernate.id.TableHiLoGenerator"> <param name="table">uid_table</param> <param name="column">next_hi_value_column</param> </generator> </id> 所有的生成器都实现net.sf.hibernate.id.IdentifierGenerator接口。 这是一个非常简单的接口;某些应用程序可以选择提供他们自己特定的实现。当然, Hibernate提供了很多内置的实现。下面是一些内置生成器的快捷名字: increment 用于为long, short或者int类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。 identity 对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。 返回的标识符是long, short 或者int类型的。 sequence 在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence), 而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。 hilo 使用一个高/低位算法高效的生成long, short 或者 int类型的标识符。给定一个表和字段(默认分别是是 hibernate_unique_key 和next_hi)作为高位值的来源。 高/低位算法生成的标识符只在一个特定的数据库中是唯一的。 seqhilo 使用一个高/低位算法来高效的生成long, short 或者 int类型的标识符,给定一个数据库序列(sequence)的名字。 uuid 用一个128-bit的UUID算法生成字符串类型的标识符, 这在一个网络中是唯一的(使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。 guid 在MS SQL Server 和 MySQL 中使用数据库生成的GUID字符串。 native 根据底层数据库的能力选择identity, sequence 或者hilo中的一个。 assigned 让应用程序在save()之前为对象分配一个标示符。这是 <generator>元素没有指定时的默认生成策略。 select 通过数据库触发器选择一些唯一主键的行并返回主键值来分配一个主键。 foreign 使用另外一个相关联的对象的标识符。通常和<one-to-one>联合起来使用。
for
分享到:
相关推荐
### 创建 uniqueidentifier 类型的唯一值 #### 概述 在数据库系统中,为了确保数据的唯一性,经常需要生成唯一的标识符。SQL Server 提供了 `uniqueidentifier` 数据类型来存储这种唯一标识符,其典型应用是作为...
【压缩包子文件的文件名称列表】:“gekitz-UIDevice-with-UniqueIdentifier-for-iOS-5-f9210f9” 这个文件名揭示了开源项目的名字,可能是“Gekitz UIDevice”项目的某个版本。在 iOS 5 及以上版本中,苹果官方...
SqlServer中Int类型快速转uniqueidentifier
在Hibernate映射文件中,ID的生成策略设置为`uuid.hex`,这意味着在持久化对象时,会尝试将一个由`uuid.hex`生成的16进制字符串转换为`uniqueidentifier`,导致了错误。 解决这个问题的方法是将映射文件中的ID生成...
描述中提到的"uniqueidentifier"是SQL Server特有的数据类型,用于存储全局唯一标识符(GUID)。在MySQL中没有直接对应的类型,通常可以使用`CHAR(36)`或`VARCHAR(36)`来存储,因为它通常以字符串形式表示。 迁移...
在SQL Server中,`uniqueidentifier` 是一种数据类型,用于存储全局唯一标识符(GUID)。GUID 是一个由系统生成的128位数值,保证在全局范围内是唯一的。然而,在某些场景下,我们可能需要将这些`uniqueidentifier`...
压缩包中的文件"UIDevice-with-UniqueIdentifier-for-iOS-5-master"可能包含了一个旧的解决方案,它可能在iOS 5时代尝试模拟UDID的行为。在iOS 5之前,`UIDevice`类有一个`uniqueIdentifier`属性,但在之后的版本中...
- uniqueidentifier:全局唯一标识符(GUID),确保每个值在全球范围内都是独一无二的。 7. 字符串类型: - char:固定长度的非Unicode字符数据,最大长度为8,000个字符。 - varchar:可变长度的非Unicode数据,...
- UNIQUEIDENTIFIER:用于存储全局唯一标识符(GUID)。 2. Oracle: Oracle是业界广泛使用的数据库系统,它的数据类型包括: - NUMBER:可以表示整数和小数,精度和规模可调。 - VARCHAR2:可变长度的字符串,...
至于压缩包中的文件`UIDevice-with-UniqueIdentifier-for-iOS-5-master`,这可能是一个开源项目或代码示例,用于在iOS 5时代获取UUID的方法。虽然现在不推荐使用,但仍然可以作为了解历史实现的参考。 总的来说,...
7. **特殊数据型(cursor、timestamp、uniqueidentifier)**: - cursor存储游标引用。 - timestamp记录行的修改时间,不表示日期。 - uniqueidentifier存储全局唯一标识符(GUID)。 8. **字符型(char、varchar...
- Uniqueidentifier:用于存储全局唯一标识符(GUID),每个值都是唯一的,长度16字节,通常由NEWID()函数生成。 了解和掌握这些数据类型是进行SQL编程的基础,能帮助开发者有效地存储和处理各种类型的数据,同时...
- UNIQUEIDENTIFIER:用于存储全局唯一标识符(GUID)。 - IMAGE、TEXT、NTEXT:已废弃,用于存储大量文本和图像数据,现推荐使用VARBINARY(MAX)、VARCHAR(MAX)和NVARCHAR(MAX)。 5. 其他数据类型: - BIT:1...
- UNIQUEIDENTIFIER为全局唯一标识符。 - BINARY和BIT用于存储二进制数据。 - TINYINT、SMALLINT、INTEGER和DECIMAL用于存储不同范围的整数。 - MONEY和REAL用于存储货币值和浮点数。 - FLOAT和SMALLINT用于...
- UNIQUEIDENTIFIER:16字节,用于全局唯一标识符(GUID)。 - BINARY(n)和VARBINARY(n):用于存储二进制数据,n分别对应最大长度。 5. **特殊数据类型**: - TIMESTAMP(非时间戳):用于自动更新的行版本号,...
when @xtype = 36 then ''' + convert(char(36), @name) + ''' -- uniqueidentifier else @name end end end fetch next from syscolumns_cursor into @name, @xtype end close syscolumns_cursor deallocate ...
修正powerdesigner无法为SQL SERVER2005、2008自动生成GUID数据类型的测试数据问题,解压后直接覆盖相关文件。 建立test data profile,进行相关设置即可自动生成GUID测试数据。 具体设置可参照博文:...
- `uniqueidentifier`: 在 SQL Server 中用于存储 GUID(全局唯一标识符),在 C# 中使用 `Guid` 类型表示。 - `xml`: 存储 XML 文档,可以使用 C# 中的 `System.Xml` 命名空间进行处理。 - `sysname`: 用于存储...
这些数据类型在SQL Server中具有特定的用途和性能优势,例如`datetime2`提供了比标准`datetime`更高的精度,`real`是浮点数的一种,而`uniqueidentifier`则用于生成全局唯一的标识符(GUID)。 为了在Laravel项目中...