hibernate多对多关联下的failed to lazily initialize a collection of role
RT
我采用的是基于annotation的ssh2框架
用MySQL创建好表之后逆向工程用hibernate生成了entity类和dao类
其中有user表与follow表 follow表达了user与user之间的多对多关联
在我的网页中 需要user A 关注(follow)user B
而hibernate生成的类中没有follow类 而是在user类中有两个set 分别表示follow与被follow
每次在按下按钮 执行给user中的某个set增加一项 的操作时 都会被告知failed to lazily initialize a collection of role
自己查了些情况
有说强制把lazy属性修改的(已尝试 他的问题稍后描述)
有说强行启动session 例如hibernate.initial();的语句
但是由于我是用Spring管理hibernate 于是我只有applicationContext.xml这个配置文件 没有hibernate.cfg.xml这个配置文件 关于启动session 或者sessionfactory估计都不能用与hibernate.cfg.xml相关的方法来操作 尝试无果
另 在退而求其次的使用了改lazy属性之后
遇到的问题就是如何使用dao类来进行修改一个实例
save表示增加 delete表示修改 merge和attach等并不很清楚他们的作用
我需要做的事findby得到这个实例 然后对他的某属性(类型是set)进行add操作 然后把该实例返回到数据库中 但是我直接save会被表示已存在相同pk的值 delete后save依然失败 修改save函数使save()的语句变为saveorupdate(0也没有用 尝试了一下merge等 也是报出奇怪的错误
特此相求 希望有答