问题:通过hibernate连接数据库,获取数据库中的数据
这个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