之前的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的使用。具体做法是在实体类的主键字段上使用`@GeneratedValue`和`@GenericGenerator`注解: ```java import javax.persistence.Entity; import javax....
8. **`uuid`**:生成128位的UUID字符串作为主键。 9. **`foreign`**:主键值来源于另一个实体的主键,常用于一对一关系。 10. **`counter`**:在内存中维护一个计数器,适用于单线程环境。 11. **`optimistic-...
### Hibernate 主键生成策略详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (ORM) 框架,它允许开发人员将 Java 对象映射到数据库表中的记录,从而极大地简化了数据访问层的开发工作。在 Hibernate 中,...
在Java的持久化框架Hibernate中,主键生成策略是一个至关重要的概念,它决定了数据库表中主键值如何自动生成。主键通常是表中唯一标识记录的一列,对于数据的完整性和一致性至关重要。以下是对Hibernate中主键生成...
- **简介**:`foreign` 策略使用外部表的字段作为主键。 - **应用场景**:当需要使用另一个表的主键作为当前表的主键时使用。 - **特点**: - 实现灵活,便于构建复杂的数据关系。 - 适用于复杂的业务逻辑。 ####...
**JPA(Java Persistence API)...综上所述,这个压缩包提供的教程详细讲解了JPA的基本概念,以及如何通过实例创建和管理JPA实体,特别是强调了主键生成策略的重要性,这对于理解和使用JPA进行数据库操作具有指导意义。
4. **UUID**:生成全局唯一的UUID字符串作为主键。 5. **ASSIGNED**:主键由应用程序分配,JPA不会自动管理。 选择哪种策略取决于你的数据库系统和需求。例如,如果你的数据库不支持序列,但又希望有顺序的主键,...
Native主键生成策略是由Hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式。这种策略灵活性很强,可以根据数据库自动选择主键生成方式。 例子:<id name="id" column="id">...
### Hibernate 主键生成策略详解 Hibernate 是一款流行的 Java 持久层框架,它提供了对象关系映射(ORM)的功能,使得 Java 开发者能够更高效地与数据库进行交互。在 Hibernate 中,主键生成策略是一项核心功能,...
2. native:该策略由Hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式。 3. hilo:该策略通过hi/lo算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。 4. ...
在Hibernate中,主键生成策略是确保实体类中的主键字段具有唯一标识的关键部分。以下是对Hibernate主键生成策略的详细说明: 1. **assigned**: 这种策略要求用户在调用`save()`方法之前手动设置主键值。Hibernate...
【标题】"04_传智播客JPA详解_第一个JPA实例与JPA主键生成策略"涉及的关键知识点主要包括Java Persistence API (JPA)的基础应用、首个JPA实例的创建以及JPA主键生成策略的理解和配置。JPA是Java平台上的一个标准,...
综上所述,对于并发 Insert 要求较高的系统,推荐采用 `uuid.hex` 作为主键生成机制,因为它提供了较好的性能和数据库平台适应性。此外,根据实际使用的数据库类型和业务需求,也可以考虑使用 `native` 策略,让 ...
在Hibernate中,可以通过`<generator class="uuid.hex"/>`来配置一个字段使用UUID.hex作为主键生成策略。这种方式特别适用于分布式系统,因为每个UUID都是独立生成且理论上不会重复。然而,由于UUID的长度较长,可能...
在Java持久化框架Hibernate中,主键生成策略是至关重要的,因为它决定了如何为数据库表的记录生成唯一的标识符。主键生成器确保了每个记录都有一个独一无二的标识,这对于数据的完整性至关重要。以下是Hibernate中...