这个HRSystem是仿照书中的代码编写的,系统重建的过程可以视同于在此发表博文的时间顺序
数据库: mysql
前面调试了页面的跳转,问题解决后现在又出现了心的问题
背景:
1、通过页面穿过来的用户名及密码,通过连接数据库,在数据库中查找是否存在此人信息
2、在本系统中的设计中, employee 和 manager 使用同一张表(employee), 但是在java端,却有两个model:
Employee 和 Manager, 其中Manager继承Employee。 并且Manager.java和
Employee.java这两个类中存在两个相同的变量 employees 和 checkBacks.
问题:
1、执行程序时报错如下:
org.hibernate.HibernateException: Found shared references to a collection: test.model.Manager.employees
2、错误原因:
因为在Manager和Employee定义了相同 的变量,并提供了相应的set方法,并且在Employee.hbm.xml映射文件中也全部定义了employee这个普通属性。因此在程序执行的过程中,就会报 Found shared references to a collection 这个错误
3、 解决方法:
去掉Manager或Employee中相同的变量即可,Employee.hbm.xml文件中有重复定义的属性,也要去掉(或注释)
因为Manager继承了Employee, 所以Employee中有的Manager中也会有,于是去掉了Manager中重复定义的employees和checkBacks
分享到:
相关推荐
Java通过Hibernate连接数据库是Java开发中的常见操作,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇文章将详细讲解如何利用Hibernate在Java项目中建立数据库连接,以及提供一个...
【标题】"Hibernate 显示数据库数据" 在Java开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以用Java对象来操作数据库记录。本教程针对初学者,将介绍如何使用...
综上所述,通过学习Hibernate的源代码并结合博文资源,我们可以深入了解Hibernate的数据库连接机制,提高我们的开发技能,使我们在实际项目中更加得心应手。同时,对源码的了解也能帮助我们更好地定制和优化...
在本项目中,“java用hibernate连接数据库提取中文”是利用Hibernate框架在Eclipse集成开发环境中与Oracle数据库进行交互,以读取和处理中文数据的小程序。下面我们将详细讨论相关的知识点。 首先,我们需要了解...
《Hibernate连接数据库详解》 在IT行业中,数据库管理和数据访问技术是至关重要的组成部分,而Hibernate作为Java领域中的一款优秀对象关系映射(ORM)框架,为开发者提供了方便、高效的数据库操作方式。本篇将深入...
1. **连接池问题**: 如果在连接数据库时遇到问题,可能是由于连接池配置不当导致的。确保正确设置了连接池的大小、超时时间等参数,并检查数据库服务器是否正常运行。 2. **驱动兼容性**: 检查使用的JDBC驱动是否与...
连接池通过预先创建并维护一定数量的数据库连接,当程序需要连接数据库时,可以从池中获取一个已存在的连接,而不是每次都创建新的。使用完毕后,连接不会被关闭,而是返回到连接池中供其他线程复用。这样,连接的...
在深入探讨Hibernate连接数据库的基础源码之前,我们首先要理解Hibernate是什么。Hibernate是一个开源的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。通过使用Hibernate,开发者可以将业务...
在上面的配置中,我们使用 DynamicDataSource 作为 Hibernate 的数据源, Hibernate 将根据当前的数据库连接信息选择对应的数据源。 使用 Spring 框架和 Hibernate,我们可以轻松地配置多数据库连接信息,并自由...
【hibernate 连接数据库基础源码】的解析与详解 Hibernate 是一款强大的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。在本教程中,我们将深入探讨Hibernate如何连接到MySQL、Oracle等...
在这个“Hibernate连接数据库模拟”项目中,我们将会深入探讨如何使用Java DOM解析XML配置文件来实现Hibernate的数据访问。 首先,Hibernate的核心在于它的配置文件——`hibernate.cfg.xml`,这个文件包含了数据库...
在实际开发中,我们首先需要在hibernate.cfg.xml中配置数据库连接信息,然后创建实体类,并通过注解@Entity、@Table等定义与数据库表的映射关系。接着,编写DAO层,利用SessionFactory和Session进行数据库操作,例如...
本篇将深入探讨Hibernate中的分页查询功能以及它如何处理数据库连接,帮助你更有效地管理大数据量的查询操作。 首先,我们来看一下什么是分页查询。在Web应用中,当用户需要浏览大量数据时,一次性加载所有数据不仅...
**hibernate 连接数据库基础源码3** 在Java编程中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以使用面向对象的方式来处理数据库事务。本教程将深入探讨Hibernate连接...
通过将对象映射到数据库表,Hibernate使得开发人员可以专注于业务逻辑,而无需关注底层的SQL语句。以下是对"Hibernate操作数据库的步骤"的详细解释: 1. **读取并解析配置文件**:在Hibernate中,配置文件(通常是`...
- **实体类和数据库关联**:为每个数据库的实体类指定相应的`sessionFactory`,可以在实体类的注解`@Entity`中通过`@Table`的`schema`属性来区分数据库,或者在映射文件`hbm.xml`中设置`table`元素的`schema`属性。...
在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。这个“Hibernate映射数据库表插件”是为了帮助开发者更方便地管理和操作数据库表而设计的。通过使用此插件,...
Hibernate是一款强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用中操作数据库的简便方法。通过使用Hibernate,开发人员可以避免直接编写SQL语句,而是通过面向对象的方式来管理和操作数据。本文将...
1. 从用户的会话中获取数据库名称。 2. 如果没有指定数据库,则使用默认值。 3. 使用`ThreadLocal`将数据库名称绑定到当前线程。 4. 在请求结束时移除线程局部变量。 #### 七、数据源配置 在Spring配置文件中,我们...
本文将详细介绍如何在`Hibernate`中配置和使用`Proxool`进行自动重新连接数据库。 首先,我们需要理解`Proxool`的工作原理。`Proxool`维护了一个数据库连接的池,当应用程序需要数据库连接时,可以从池中获取;使用...