今天在弄一个SSH框架的增删改查的简单功能,结果在一个主键设置方面弄了N小时!
原因是我对hibernate还不熟悉。
<id name="pkId" type="java.lang.Integer">
<column name="PK_ID" />
<generator class="identity" />
</id>
<generator>的设置很关键,目前我主要遇到的情况就是系统自增长或是我给他赋值。
网上也有很多资料,其中的正确性没去验证,我就说说我遇到的验证过的情况吧。
如果数据库设置了自动增长,并且你也希望他是自增的,则hibernate就要设置identity.
(网上有资料说identity是采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。)
如果数据库没有设置为自动增长,但是你又希望他是自动增长的,则hibernate就要设置为increment.
如果你要设置为赋值方式的,则······具体问题具体分析。一般就是assigned、native。
以上是我目前总结出来的,以后再有深入了解再详细说明。
本人才疏学浅,也没专门去查相关资料,写的也不是很详细,只是写出来给自己提个醒。当自己迷惑的时候还有个方向。
谢谢!
分享到:
相关推荐
在 Hibernate 中,`generator` 属性是用于指定如何生成实体类的唯一标识(通常为主键)的一种机制。这个属性可以配置在 `hibernate.hbm.xml` 文件中的 `<id>` 标签内,它允许你选择不同的策略来生成 ID。 1. **...
《使用Hibernate Code Generator提高开发效率》 在Java J2EE开发中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,手动编写与数据库表对应的Java实体类、Hibernate的.hbm映射...
### Hibernate中的Generator生成方式详解 在Hibernate框架中,对象与关系映射(ORM)是其核心功能之一,它能够将面向对象模型中的类与数据库表建立对应关系,从而实现对象和数据库之间的转换。而在持久化对象的过程...
Hibernate 映射文件 id 的 generator 配置方法 Hibernate 映射文件 id 的 generator 配置方法是 Hibernate 框架中的一种重要配置,用于生成持久化类实例的唯一标识符。下面将对 Hibernate 映射文件 id 的 generator...
13. **hibernate.id.new_generator_mappings** 是否使用新的ID生成策略,默认为`true`,支持JPA2的ID生成策略。 14. **hibernate.generate_statistics** 是否收集统计信息,用于性能分析,设为`true`后,可通过...
2. **Hibernate Tools**:作为Hibernate的一部分,它提供了与IDE集成的插件,如Eclipse和IntelliJ IDEA,帮助开发者生成和维护Hibernate相关的代码,比如实体类、映射文件、DAO层代码等。 3. **源码获取**:从描述...
Hibernate Pojo Generator生成通过Hibernate Annotations(+ Spring)访问数据库所需的所有Java代码,包括JUnit测试(每个表1个),这些测试可以立即运行而无需进一步定制。 大部分使用MySQL进行测试。 移至GitHub:...
15. **hibernate.id.new_generator_mappings**:当设置为`true`时,使用新的ID生成策略,默认从Hibernate 5开始启用。 16. **hibernate.max_fetch_depth**:限制了级联加载的深度,防止深度递归导致性能下降。 17....
通过这个文件,我们可以指定Hibernate的工作模式、缓存设置、日志级别等。例如: ``` hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.url=jdbc:mysql://localhost:3306/mydb ...
generator 是 Hibernate 中的一种生成器,用于生成唯一的标识符。generator 可以通过 Java 类或 XML 文件来定义。 composite-id composite-id 是 Hibernate 中的一种复合标识符,用于标识对象模型的唯一性。...
2. **代码生成器(Code Generator)**:提供了一种方式来自动创建基于Hibernate的持久层代码,包括实体类、映射文件、DAO和Service层代码。 3. **HQL和SQL查询编辑器**:提供了集成的HQL(Hibernate Query Language...
2. **配置项目**:在配置项目过程中,需要选择Hibernate相关的依赖。IDEA提供了三种方式: - 使用本地的Hibernate JAR包。 - 使用IDEA内置的JAR包(注意IDEA内置版本可能不是最新)。 - 自动导入JAR包。 对于本...
<generator class="increment"/> <!-- Blob类型的映射 --> </hibernate-mapping> ``` 在代码中,我们可以通过输入流(InputStream)来读取二进制数据,并将其保存到Blob对象中。例如,当用户上传图片...
《深入探索Hibernate Tool源代码:Eclipse Plugin与Code Generator解析》 Hibernate Tool是Java开发者们常用的工具,它基于Hibernate框架,提供了丰富的功能,包括数据库逆向工程、对象关系映射(ORM)代码自动生成...
- Hibernate配置文件的编写,包括SessionFactory的配置和Hibernate属性的设置,对Hibernate的运行性能有直接影响。 - Hibernate映射文件的编写是连接Java对象与数据库表的关键,需要理解对象与关系映射(ORM)的概念...
<generator class="native" /> <!-- 一对多关联关系 --> <one-to-many class="com.Hibernate.City" /> </hibernate-mapping> ``` 在该文件中,我们可以看到有多个关键的配置项: * `class`:定义...
在开始使用 Hibernate 之前,需要进行环境配置,主要包括导入 Hibernate 相关的 JAR 包,如 Hibernate 的核心库、JDBC 驱动和单元测试库。配置文件 `hibernate.cfg.xml` 是 Hibernate 的心脏,它包含了数据库连接...
### 使用Hibernate形式生成UUID的算法解析 在Java开发领域,特别是使用Hibernate框架进行数据库操作时,唯一标识符(UUID)的生成是常见的需求之一。UUID(Universally Unique Identifier),即通用唯一识别码,是...
- 首先需要在项目中添加`hibernate3.jar`以及其他相关依赖库(如连接数据库所需的JDBC驱动),并通过设置`CLASSPATH`环境变量确保这些库被正确引用。 - **数据库准备:** - 根据应用需求创建相应的数据库及表结构...
2. **Increment方式**:`<generator class="increment"/>` 这种方式由Hibernate自己管理主键的递增,而不是依赖数据库。它维护一个全局计数器,每次保存新实体时,计数器加一并作为主键值。但是,这种方式在多线程或...