`
lykm02
  • 浏览: 51028 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate id generator

阅读更多
今天碰到了一个hibernate的问题。
是这样的,应用场景主要为以下case:
表:
table book(
    id auto_increment primary key,
    details.
)
问题在于插入book 记录的时候,有两种来源:
1) 已有数据的迁移,也就是说id是有的,要hold住
2)新数据的插入,没有id, 需要table生成。
这个时候发现hibernate真心不方便。
他的session id generator 是自个用的,和database id没啥关系。
稍微搜了一下资料。
大概眼前的解决方案有两个。
1)写一个 custom id generator 来handle session id的生成模式
2)写两个save 方法,以区分有id 和没有id两种case

目前我选择2,这个是业务场景要求的,并非1不可行。

但是,为什么hibernate插入到database 后,并不同步session里面自有的对象呢?
不知道大家有什么建议?
分享到:
评论

相关推荐

    Hibernate的generator属性

    这个属性可以配置在 `hibernate.hbm.xml` 文件中的 `<id>` 标签内,它允许你选择不同的策略来生成 ID。 1. **identity**:这个生成器适用于像 MySQL 这样的数据库,它依赖于数据库自身的自动递增功能。例如,在 ...

    hibernate中的generator的生成方式hibernate中的generator的生成方式

    在Hibernate中,`Generator`是负责生成主键值的策略,通常在`<id>`元素中通过`class`属性指定。不同的数据库和不同的应用场景可能需要不同的生成策略。接下来,我们将逐一介绍各种常见的生成策略及其适用场景。 ###...

    Hibernate映射文件id的generator配置方法

    Hibernate 映射文件 id 的 generator 配置方法 Hibernate 映射文件 id 的 generator 配置方法是 Hibernate 框架中的一种重要配置,用于生成持久化类实例的唯一标识符。下面将对 Hibernate 映射文件 id 的 generator...

    Hibernate教程02_ID生成策略

    Hibernate中通过`@GeneratedValue(strategy = GenerationType.SEQUENCE)`和`@SequenceGenerator`进行配置。 5. ** Table **:通过一个专门的表来生成ID,适用于跨数据库平台的系统,因为它不依赖特定数据库的特性。...

    Hibernate完整使用教程

    Hibernate 完整使用教程 Hibernate 是一种流行的开源持久层框架,允许开发者使用面向...composite-id 是 Hibernate 中的一种复合标识符,用于标识对象模型的唯一性。composite-id 可以通过 Java 类或 XML 文件来定义。

    hibernate的dtd 包含hibernate.properties

    <generator class="increment"/> </id> </hibernate-mapping> ``` 在这个例子中,`<class>`元素代表一个Java类,`<id>`和`<property>`元素则分别表示主键和普通属性,它们都映射到了数据库表的相应列。 ...

    hibernate配置文件详解

    <generator class="native" /> </id> <!-- 一对多关联关系 --> <key column="province_id" /> <one-to-many class="com.Hibernate.City" /> </hibernate-mapping> ``` 在该文件中,我们可以看到有多...

    hibernate关系映射网址

    ### Hibernate关系映射详解 #### 一、引言 Hibernate是一种广泛使用的Java持久化框架,它简化了对象关系映射(Object-Relational Mapping,简称ORM)的过程,使得开发人员可以更加专注于业务逻辑的实现而无需过多...

    hibernate 重点知识原创

    <generator class="native"/> </id> </hibernate-mapping> ``` 七、表与表的关系 Hibernate 支持多种数据库表之间的关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多...

    hibernate映射主键生成策略native

    ### Hibernate映射主键生成策略native #### 一、引言 在ORM(对象关系映射)技术中,Hibernate作为一款流行的Java持久层框架,在处理数据持久化方面提供了丰富的功能和灵活性。其中,主键生成策略是Hibernate配置...

    用hibernate形式uuid的生成算法

    UUID(Universally Unique Identifier),即通用唯一识别码,是一种用于创建唯一标识符的机制,常用于分布式系统中,确保每个实体都有一个独一无二的ID。本文将深入探讨如何使用Hibernate的形式生成UUID,通过分析一...

    Hibernate快速入门教程

    【Hibernate快速入门教程】 在Java开发中,Hibernate是一个非常重要的框架,它实现了对象关系映射(ORM)技术,使得开发者可以使用面向对象的方式来操作数据库,极大地简化了数据访问层的编程工作。本教程针对初学...

    Hibernate之配置使用案例hibernate001

    <generator class="native"/> </id> ... </hibernate-mapping> ``` 现在,我们可以创建SessionFactory,它是Hibernate的核心组件,提供了Session的创建和管理。SessionFactory的实例通常是全局唯一的,如下...

    Hibernate+struts实例学习

    <generator class="assigned"/> </id> <!-- 其他字段配置省略 --> </hibernate-mapping> ``` 通过上述步骤,我们就完成了一个简单实例的Hibernate配置和映射过程,接下来可以进行具体的CRUD(创建...

    Hibernate+IDEA 2018 一个hibernate程序

    <generator class="increment"/> </id> ``` #### 单元测试 为了确保代码质量,还需要编写单元测试。使用JUnit框架可以方便地进行单元测试。 **HibernateTest.java** ```java import org.hibernate.Session; ...

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    hibernate 资料hibernate 资料hibernate 资料

    ### Hibernate核心知识点详解 #### Hibernate概述 - **定义与作用:** Hibernate是一种对象关系映射(ORM)技术的实现,其主要目的是简化Java应用程序与数据库之间的交互过程。通过使用Hibernate,开发人员能够...

    hibernate关联关系

    ### Hibernate关联关系详解 在开发基于数据库的应用程序时,实体之间的关联关系是非常常见的。Hibernate作为一款优秀的ORM(Object-Relational Mapping)框架,为Java开发者提供了便捷的方式来处理这些关系。本文将...

    hibernate常见异常

    org.hibernate.id.IdentifierGenerationException 是一种常见的异常,通常是由于 <id> 元素配置不正确所致。<id> 元素缺少其子元素 <generator></generator> 的配置引起。解决方案是检查 <id> 元素的配置,确保其子...

Global site tag (gtag.js) - Google Analytics