公司开发基本上不用写Hibernate批注,因为公司有引以为自豪的实体类生成工具!
但是基本上要改动一下批注!默认情况下每个实体类的主键生成策略是assigned.
大家都知道assigned 就是由数据库外部程序指定的方式!
但是我们大多开发都是喜欢自动生成,自动生成必然首选native啦!应为这个方式可以让你的程序数据库移植性变的更强!
但是试了试不可以,出错了!我想identity总可以吧(应为我们的数据库用的是mysql)。实质上也是不可以的,但是当我改成Increment的时候!居然可以啊!
都是自增长区别咋就那么大呢?
仔细查看了一下Hibernate代码,哎,利用上班时间研究东西就是爽啊,呵呵!
发现实质上native,identity是没错的,但是因为我们公司的开发方式是才让这种错误产生!
公司的开发是用pd生成数据库sql,然后利用公司程序导出相应的实体类!
(实体类会把你建表的一整套东西都搞定的,呵呵!)
这样的话其实数据库里面你没有规定他的增长方式,so....native.identity是无效的。当然,正常开发的时候我们是根据实体类生成表!这样就是有用的了!
而increment之所以有用就是因为,他是Hibernate维护的一个计时器!也算是程序加入主键的一种方式把。
分享到:
相关推荐
通过以上内容可以看出,在Oracle环境下使用Hibernate的“native”策略生成主键是一种高效且灵活的方式。只需要在映射文件中简单地指定`<generator class="native"></generator>`即可实现。同时,还需要注意数据库中...
以下是关于Hibernate主键生成方式的详细说明: 1. **Identity方式**:`<generator class="identity"/>` 这种方式依赖于数据库自身的自动增长机制。例如,在MySQL中,它可以与`AUTO_INCREMENT`属性配合使用。当...
通过上述介绍,我们可以看出 Hibernate 支持多种不同的主键生成策略,每种策略都有其独特的应用场景和优缺点。开发者可以根据实际需求选择最适合的策略来满足项目的需求。在实际应用中,`native` 和 `assigned` 是最...
### 常用Hibernate主键生成策略详解 #### 一、引言 在数据库设计与操作过程中,主键是确保数据唯一性的关键要素之一。在实际应用中,开发者经常需要处理不同类型的数据库,并且需要应对各种不同的主键生成需求。...
- **描述**:用户在插入数据时手动指定主键值,Hibernate 不参与主键的生成。 - **优点**:完全控制主键的生成,可以满足某些特定的需求。 - **缺点**:需要程序员自行处理主键的唯一性。 - **应用场景**:当...
主键值由应用程序手动设置,Hibernate不参与主键生成。使用`<generator class="assigned">`或不使用`@GeneratedValue`注解。 9. **HiLo算法**: 一种优化的主键生成方式,使用较小的整数范围(高位数)和数据库表...
Hibernate各种主键生成策略详解,包括 assigned increment hilo seqhilo sequence identity native uuid foreign uuid.hex sequence-identity 等
Hibernate 不参与主键的生成过程。 - **应用场景**:当需要对主键有完全控制权或使用具有特殊意义的主键值时使用。 #### 3. Increment - **描述**:Hibernate 自动为主键分配一个递增的值,但此策略仅在一个 JVM ...
以下是对Hibernate主键生成策略的详细说明: 1. **assigned**: 这种策略要求用户在调用`save()`方法之前手动设置主键值。Hibernate不参与主键的生成,这意味着主键生成完全由应用控制,可以与数据库无关。这种...
在Java持久化框架Hibernate中,主键生成策略是至关重要的,因为它决定了如何为数据库表的记录生成唯一的标识符。主键生成器确保了每个记录都有一个独一无二的标识,这对于数据的完整性至关重要。以下是Hibernate中...
以上就是Hibernate主键生成的常见策略,每种策略都有其适用的场景。在实际开发中,应根据数据库类型和需求选择合适的主键生成策略,确保数据的一致性和完整性。理解并正确配置这些策略,将有助于提高程序的稳定性和...
Hibernate主键生成策略详细介绍 在Java探索中,Hibernate提供了多种主键生成策略,满足不同场景下的需求。下面是对Hibernate主键生成策略的详细介绍: 1. Increment主键生成策略 Increment主键生成策略是由...
- **定义**:Hibernate会根据当前使用的数据库类型自动选择最适合的主键生成策略(如identity、hilo、sequence)。 - **应用场景**:适用于跨数据库平台的应用开发,可以避免因为数据库不同而导致的代码修改。 8....
### Hibernate主键生成策略 1. **`native`**:类似于JPA的`GenerationType.AUTO`,根据底层数据库选择合适的生成策略。 2. **`identity`**:相当于JPA的`GenerationType.IDENTITY`,适合自动增长主键的数据库。 3...