`

Hibernate主键设置错误造成的bug

阅读更多

      项目最近忙于录入数据,在录入数据的过程中发现了一个问题,由于blazeds做了前后台的连接机制,在hibernate处理数据库的多关键字时采取的是增加一个字段GUID,在数据库中还是其他几个关键字作为Primary Key,GUID只是作为一个辅助的字段,在Hibernate的映射文件Hbm中需要将GUID设置为主键,而pojo也要做相应的修改,即将GUID的get函数改为几个关键字的String字符串拼凑的结果返回。

      有些表设置主键出错了,只设置了单主键,在录入数据之后,查询出来的结果,出现了多个重复的记录,在前后台debug调试了半天,没有发现异常,于是我查了一下数据字典,再跟hbm文件一对照,知道是主键设置错误造成的结果,呵呵,于是修改数据库,hbm配置文件,pojo类,重新编译项目并发布,ok,一切正常。

  关于解决Hibernate多主键的这个方法是以前项目经理尝试的(据他说是由于Blazeds不能使用Hibernat的多主键),不知道Hiberntae有没有更好的方法处理多主键呢,希望高手指教!

分享到:
评论

相关推荐

    HIbernate免注解实现操作数据库 及Hibernate3连接SQL的BUG解决办法

    6. **配置错误**: 检查`hibernate.properties`或`hibernate.cfg.xml`文件中的配置项,确保所有必要的属性都已设置,并且值是正确的。 总结来说,虽然注解在现代Hibernate版本中已成为主流,但在特定场景下,使用XML...

    hibernate-release-5.2.10

    2. **配置**:Hibernate的配置文件(如hibernate.cfg.xml)中需要设置数据库连接信息、方言、缓存策略等,这是使用Hibernate的第一步。 3. **会话工厂与会话**:SessionFactory是线程安全的,负责创建Session对象,...

    hibernate4.2.2最终版jar包

    在Hibernate 4.2.2版本中,主要改进了性能,增加了对JPA 2.1规范的支持,并修复了一些已知的bug。以下是一些关键知识点: 1. **对象关系映射(ORM)**:Hibernate的核心功能是ORM,它允许开发者用Java对象来代表...

    Hibernate的事务处理机制和flush方法的用法.docx

    然而,过度使用`flush`可能会导致事务的完整性受损,因为它可能在不适当的时间点更新数据,从而引发错误。 异常`AssertionFailure: possible nonthreadsafe access to session`通常发生在不安全的Session使用情况下...

    hibernate 4.1.4

    例如,`@Entity`注解标记一个类为实体,`@Table`定义对应的数据库表,`@Id`指定主键,而`@GeneratedValue`用于自动化生成主键值。这些元数据使得Hibernate能够自动处理对象与数据库之间的转换。 进一步,Hibernate...

    Hibernate-tools解决hbm.xml中文注释乱码和生成实体类注释

    - 定期更新`Hibernate-tools`,以获取最新的功能和修复的bug。 - 对于复杂的业务场景,可能需要编写自定义的代码生成逻辑,这时可以利用`Hibernate-tools`提供的API进行扩展。 总结,`Hibernate-tools`是...

    hibernate-release-5.0.6.Final.zip(最新Hibernate架包)

    2. **版本5.0.6.Final**:此版本是Hibernate 5系列的一个最终稳定版,包含了多个bug修复、性能优化以及新功能的添加。在使用时,开发者可以期待更稳定的运行环境和更好的兼容性。 3. **lib目录**:在压缩包中的"lib...

    hibernate-3.1.3.zip

    1. **Hibernate 3.1.3 简介**:Hibernate 3.1.3是Hibernate 3系列的一个重要版本,它在3.1.2的基础上进行了优化和bug修复,提供了一套更完善的ORM解决方案。这个版本支持JPA(Java Persistence API),并且具备良好...

    hibernate最好的中文文档 hibernate api

    配置文件(hibernate.cfg.xml)中,包含了数据库连接信息、方言(Dialect)、缓存策略、实体类路径等关键设置。例如: ```xml <hibernate-configuration> <property name="connection.driver_class">...

    hibernate synchronizer

    Hibernate Synchronizer作为Eclipse的插件,为Java开发者提供了高效管理Hibernate映射文件的途径,提升了开发效率,减少了错误。熟练掌握其使用,无疑会为Java Web开发带来极大的便利。在实际应用中,应结合团队规范...

    AHibernate1.1

    早期版本AHibernate1.0下载地址:http://download.csdn.net/detail/lk_blog/4222048 本版主要修改的内容: 1.修改bug,实体类的属性定义为int时自动生成Id正常,定义为Integer类型后不能自动生成Id. 2.实现功能:自动...

    hibernate 配置文件 生成工具

    1.采用freeMarker模板来生成代码,真正实现了自定义代码模板; 2.理论上可以生成任何语言的任何所需要的模板; 3.更改了内部逆向工程的实现方式...4.修正了主键ID读取不正确的问题; 5.修正了生成文件编码不正确的BUG;

    hibernate.rar

    2. 映射文件(Mapping File):XML格式的映射文件用于定义实体类与数据库表之间的关系,包括字段映射、主键生成策略等。 3. Session:它是Hibernate的工作单元,负责在应用程序和数据库之间建立会话,执行CRUD操作...

    J2EE企业级项目开发-1期 04 Hibernate使用经验.doc

    1. **独立的ID设计**:在设计数据库时,推荐为每张表创建一个与业务逻辑无关的主键ID,例如自增的序列号。这样做可以确保在数据量增长时,能够更方便地为这些ID字段添加索引,提高查询效率。同时,如果业务需求发生...

    航空售票系统修改Bug

    数据库表可能包括“航班表”、“座位表”和“预订表”,它们通过主键和外键关联,确保数据的一致性和完整性。修复Bug可能涉及到SQL查询优化、事务处理、并发控制或者数据一致性问题。 其次,航空售票系统的编程语言...

    middlegen

    在这个版本中,我们可以期待它包含了对当时较新版本的Hibernate框架的支持,以及可能的性能优化和bug修复。用户通常可以通过下载此压缩包,解压后在IDE中安装并使用Middlegen。 在使用Middlegen时,首先需要配置...

    Simple-human-resources-application-example:这是人事部门的申请。 它允许用户添加,编辑或删除员工。 使用Hibernate进行对象关系映射的示例

    添加员工(创建对象)时,我们创建一个`Employee`对象并设置其属性,然后通过Hibernate的Session接口调用`save()`方法将其持久化到数据库。编辑员工(更新对象)则涉及到查询特定的`Employee`对象,修改其属性,再...

    2024年Java高级工程师面试题及答案.docx

    - **约束:** 用于保证数据库中数据完整性的规则,常见的有非空约束、主键约束、外键约束等。 #### 10. Spring 的核心概念 - **IOC(Inversion of Control)**:允许对象在其运行期间动态地获得和设置依赖关系。 -...

    BOS 技术整理

    基于工具使用 SQL 插入中文有乱码问题,设置客户端字符集 gb2312 配置 环境变量 NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK 弹窗了,就表示成功了! 工具补充: Navicat Premium 安装和使用 ...

Global site tag (gtag.js) - Google Analytics