`
VaxVall
  • 浏览: 20907 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

使用uuid作为主键生成策略

阅读更多
之前的Hibernate使用int作为主键,其主键生成策略(在映射文件中定义)为native,这是一种根据当前使用的数据库自动选择主键策略的方法.现在使用uuid作为主键生成策略.

若使用uuid作为主键的生成策略,前提是主键要定义为String型,且映射文件中写:
<generator class = "uuid"></generator>


下面是持久类和映射文件:

持久类:
package hiber1;

public class User {
	private String uid;
	private String username;
	private String password;
	private String address;
	public String getUid() {
		return uid;
	}
	public void setUid(String uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
	

	

}



映射文件:
<?xml version="1.0" encoding="UTF-8"?>

<!--引入dtd约束-->
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    
<hibernate-mapping>
    <class name = "hiber1.User" table = "newtableTest2"><!--class中写类的全路径-->
        <id name = "uid" column = "uid">
            <generator class = "uuid"></generator>
        </id>
        
        <property name="username" column = "username"></property>
        <property name="password" column = "password"></property>
        <property name="address" column = "address"></property>
    </class>
</hibernate-mapping>



主要就是这两处改动.
之后查看生成的表格,

  • 大小: 39.1 KB
分享到:
评论

相关推荐

    Hibernate用UUID作为主键的Demo

    在Hibernate中,我们可以通过定义主键生成策略来实现UUID的使用。具体做法是在实体类的主键字段上使用`@GeneratedValue`和`@GenericGenerator`注解: ```java import javax.persistence.Entity; import javax....

    持久化类主键生成策略+例子

    8. **`uuid`**:生成128位的UUID字符串作为主键。 9. **`foreign`**:主键值来源于另一个实体的主键,常用于一对一关系。 10. **`counter`**:在内存中维护一个计数器,适用于单线程环境。 11. **`optimistic-...

    Hibernate主键生成策略

    ### Hibernate 主键生成策略详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (ORM) 框架,它允许开发人员将 Java 对象映射到数据库表中的记录,从而极大地简化了数据访问层的开发工作。在 Hibernate 中,...

    Hibernate中主键生成策略

    在Java的持久化框架Hibernate中,主键生成策略是一个至关重要的概念,它决定了数据库表中主键值如何自动生成。主键通常是表中唯一标识记录的一列,对于数据的完整性和一致性至关重要。以下是对Hibernate中主键生成...

    hibernate主键生成策略

    - **简介**:`foreign` 策略使用外部表的字段作为主键。 - **应用场景**:当需要使用另一个表的主键作为当前表的主键时使用。 - **特点**: - 实现灵活,便于构建复杂的数据关系。 - 适用于复杂的业务逻辑。 ####...

    04_JPA详解_第一个JPA实例与JPA主键生成策略.zip

    **JPA(Java Persistence API)...综上所述,这个压缩包提供的教程详细讲解了JPA的基本概念,以及如何通过实例创建和管理JPA实体,特别是强调了主键生成策略的重要性,这对于理解和使用JPA进行数据库操作具有指导意义。

    JPA环境搭建及JPA实例与JPA主键生成策略

    4. **UUID**:生成全局唯一的UUID字符串作为主键。 5. **ASSIGNED**:主键由应用程序分配,JPA不会自动管理。 选择哪种策略取决于你的数据库系统和需求。例如,如果你的数据库不支持序列,但又希望有顺序的主键,...

    Java探索之Hibernate主键生成策略详细介绍

    Native主键生成策略是由Hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式。这种策略灵活性很强,可以根据数据库自动选择主键生成方式。 例子:&lt;id name="id" column="id"&gt;...

    hibernate 主键生成策略

    ### Hibernate 主键生成策略详解 Hibernate 是一款流行的 Java 持久层框架,它提供了对象关系映射(ORM)的功能,使得 Java 开发者能够更高效地与数据库进行交互。在 Hibernate 中,主键生成策略是一项核心功能,...

    hibernate映射文件--主键生成策略[参考].pdf

    2. native:该策略由Hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式。 3. hilo:该策略通过hi/lo算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。 4. ...

    hibernate的主键生成策略

    在Hibernate中,主键生成策略是确保实体类中的主键字段具有唯一标识的关键部分。以下是对Hibernate主键生成策略的详细说明: 1. **assigned**: 这种策略要求用户在调用`save()`方法之前手动设置主键值。Hibernate...

    04_传智播客JPA详解_第一个JPA实例与JPA主键生成策略

    【标题】"04_传智播客JPA详解_第一个JPA实例与JPA主键生成策略"涉及的关键知识点主要包括Java Persistence API (JPA)的基础应用、首个JPA实例的创建以及JPA主键生成策略的理解和配置。JPA是Java平台上的一个标准,...

    Hibernate主键生成方式

    综上所述,对于并发 Insert 要求较高的系统,推荐采用 `uuid.hex` 作为主键生成机制,因为它提供了较好的性能和数据库平台适应性。此外,根据实际使用的数据库类型和业务需求,也可以考虑使用 `native` 策略,让 ...

    hibernate中自动生成主键的办法

    在Hibernate中,可以通过`&lt;generator class="uuid.hex"/&gt;`来配置一个字段使用UUID.hex作为主键生成策略。这种方式特别适用于分布式系统,因为每个UUID都是独立生成且理论上不会重复。然而,由于UUID的长度较长,可能...

    Hibernate主键生成

    在Java持久化框架Hibernate中,主键生成策略是至关重要的,因为它决定了如何为数据库表的记录生成唯一的标识符。主键生成器确保了每个记录都有一个独一无二的标识,这对于数据的完整性至关重要。以下是Hibernate中...

Global site tag (gtag.js) - Google Analytics