有人能帮我看看我hibernate的配置吖!!!万分感谢了【双向一对多的配置】

斯文这个禽兽 2017-07-18 10:19:50
forum.java

{private int forumId;//帖子id
private int mainId;//回帖的id,暂定
private int forumType;//帖子类型,参考typeConfig类
private int minus;//踩的人数
private int plus;//点赞的人数
private int checkNum;//查看的人数
private int userId;//用户id
private String title;//帖子的标题
private String content;//条子的内容
private Timestamp forumMakeDate;//最新回复的时间
private Timestamp createDate;//帖子创建的时间
private User user;}

User.java

{private int userId;
private int sex; //性别
private int state;
private String userName; //用户名
private String password; //密码
private String phone; //手机
private String email; //邮箱
private String headImgUrl; //头像
private String code;//邮箱验证码
private Set<Forum> forums = new HashSet<Forum>();}

forum.hbm.xml(无关代码已经隐藏了)

<join table="user_forum" inverse="true" optional="true">
<key column="forumId"></key>
<many-to-one name="user" column="userId" not-null="true" lazy="false"></many-to-one>
</join>


<set name="forums" table="user_forum" lazy="false">
<key column="userId"></key>
<many-to-many column="forumId" unique="true" class="pw.gouzai.home.blog.entity.Forum" ></many-to-many>
</set>

--------------------------------------------------------------------------------------------------------------
//两个对象关系的保存以及持续化

forum.setUser(user);
user.getForums().add(forum);
//先保存
forumService.saveForum(forum);
//然后关联
userService.update(user);



怎么保存的时候没有问题,在查询所有forum的话,直接使用toString就会报错。。。。。debug发言双向一对多属性有问题。
值为:com.sun.jdi.InvocationException occurred invoking method.的就没有毛病。。。
forum中的user为com.sun.jdi.InvocationException occurred invoking method.,打开user查看,原来是user里面的forums属性,以及别的不知道是什么属性,他的值也是这个。。。百度,谷歌之后查讯狗后他们说可能是配置问题,我也觉得是。。。但是看不出哪里有问题吖,求各位大大帮忙解释一下拉,万分感谢
...全文
201 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
斯文这个禽兽 2017-07-19
  • 打赏
  • 举报
回复
引用 8 楼 pany1209 的回复:
[quote=引用 6 楼 qq_35228149 的回复:] [quote=引用 4 楼 pany1209 的回复:] [quote=引用 2 楼 qq_35228149 的回复:] [quote=引用 1 楼 pany1209 的回复:] 一的一方

<set name="forums" inverse="true">
   		<key>
   			<column name="userId"></column>
   		</key>
   	<one-to-many class="pw.gouzai.home.blog.entity.Forum"/>
   </set>
多的一方

       <many-to-one name="user" class="user全限定名" column="userId" lazy="false"></many-to-one>
查看的时候报错 23:32:33,500 WARN [http-nio-8080-exec-10] SecurityMemberAccess:64 - Package of target [ognl.MethodFailedException: Method "test2" failed for object pw.gouzai.home.blog.action.ForumAction@7ecde4fc [java.lang.StackOverflowError]] or package of member [public java.lang.String java.lang.Throwable.getMessage()] are excluded! 就是出现我之前的那个情况了[/quote] java.lang.StackOverflowError。。。。栈溢出,不要都调用oString方法。。。得到集合直接遍历集合打印某些属性就可以了[/quote] 他某些属性是对象,之前我配置的时候,有些属性没有配置属性的类型,直接toString也会出现这种问题,所以我在想,是不是我这个user或者froums配置上出现了问题。 请赐教拉[/quote] 不是配置问题,是toString的互相调用导致的。。。。。[/quote] 谢谢了啦,知道了咯。 最近在老师的公司折腾node.js做游戏服务器的开发。最近没啥事情做,我才开始做自己的东子的,哈哈哈哈,程序猿对于自己的项目永远都是那么积极的
斯文这个禽兽 2017-07-19
  • 打赏
  • 举报
回复
另外参考了这位博主的文章,哈哈哈哈,我也是新手上路。最近在老师的公司上班了,都很少折腾自己的项目了,ssh老师讲又太水了,问问题又不回答,一个学期又能学到什么呢???呀呀呀,我还是赶紧把我的个人博客弄出来,哈哈哈哈哈,以后就可以在上面发表一下新手入坑的实例了 http://blog.csdn.net/qq_23371197/article/details/53895272
李德胜1995 2017-07-19
  • 打赏
  • 举报
回复
引用 6 楼 qq_35228149 的回复:
[quote=引用 4 楼 pany1209 的回复:] [quote=引用 2 楼 qq_35228149 的回复:] [quote=引用 1 楼 pany1209 的回复:] 一的一方

<set name="forums" inverse="true">
   		<key>
   			<column name="userId"></column>
   		</key>
   	<one-to-many class="pw.gouzai.home.blog.entity.Forum"/>
   </set>
多的一方

       <many-to-one name="user" class="user全限定名" column="userId" lazy="false"></many-to-one>
查看的时候报错 23:32:33,500 WARN [http-nio-8080-exec-10] SecurityMemberAccess:64 - Package of target [ognl.MethodFailedException: Method "test2" failed for object pw.gouzai.home.blog.action.ForumAction@7ecde4fc [java.lang.StackOverflowError]] or package of member [public java.lang.String java.lang.Throwable.getMessage()] are excluded! 就是出现我之前的那个情况了[/quote] java.lang.StackOverflowError。。。。栈溢出,不要都调用oString方法。。。得到集合直接遍历集合打印某些属性就可以了[/quote] 他某些属性是对象,之前我配置的时候,有些属性没有配置属性的类型,直接toString也会出现这种问题,所以我在想,是不是我这个user或者froums配置上出现了问题。 请赐教拉[/quote] 不是配置问题,是toString的互相调用导致的。。。。。
斯文这个禽兽 2017-07-19
  • 打赏
  • 举报
回复
引用 4 楼 pany1209 的回复:
[quote=引用 2 楼 qq_35228149 的回复:] [quote=引用 1 楼 pany1209 的回复:] 一的一方

<set name="forums" inverse="true">
   		<key>
   			<column name="userId"></column>
   		</key>
   	<one-to-many class="pw.gouzai.home.blog.entity.Forum"/>
   </set>
多的一方

       <many-to-one name="user" class="user全限定名" column="userId" lazy="false"></many-to-one>
查看的时候报错 23:32:33,500 WARN [http-nio-8080-exec-10] SecurityMemberAccess:64 - Package of target [ognl.MethodFailedException: Method "test2" failed for object pw.gouzai.home.blog.action.ForumAction@7ecde4fc [java.lang.StackOverflowError]] or package of member [public java.lang.String java.lang.Throwable.getMessage()] are excluded! 就是出现我之前的那个情况了[/quote] java.lang.StackOverflowError。。。。栈溢出,不要都调用oString方法。。。得到集合直接遍历集合打印某些属性就可以了[/quote] ps: 真心的感谢,我发现了问题的所在了,就是理解上知道了。因为我配置的是双向一对多关系,遍历帖子的时候,帖子里面包含很多用户,用户里面又包含很多的帖子,完完全全就是个死循环。无穷无尽的循环。报错也是必然的事情了。 这样子理解的是吗?是的话我就吧帖子关了,新手上路,并不是很懂啦
斯文这个禽兽 2017-07-18
  • 打赏
  • 举报
回复
引用 4 楼 pany1209 的回复:
[quote=引用 2 楼 qq_35228149 的回复:] [quote=引用 1 楼 pany1209 的回复:] 一的一方

<set name="forums" inverse="true">
   		<key>
   			<column name="userId"></column>
   		</key>
   	<one-to-many class="pw.gouzai.home.blog.entity.Forum"/>
   </set>
多的一方

       <many-to-one name="user" class="user全限定名" column="userId" lazy="false"></many-to-one>
查看的时候报错 23:32:33,500 WARN [http-nio-8080-exec-10] SecurityMemberAccess:64 - Package of target [ognl.MethodFailedException: Method "test2" failed for object pw.gouzai.home.blog.action.ForumAction@7ecde4fc [java.lang.StackOverflowError]] or package of member [public java.lang.String java.lang.Throwable.getMessage()] are excluded! 就是出现我之前的那个情况了[/quote] java.lang.StackOverflowError。。。。栈溢出,不要都调用oString方法。。。得到集合直接遍历集合打印某些属性就可以了[/quote] 他某些属性是对象,之前我配置的时候,有些属性没有配置属性的类型,直接toString也会出现这种问题,所以我在想,是不是我这个user或者froums配置上出现了问题。 请赐教拉
斯文这个禽兽 2017-07-18
  • 打赏
  • 举报
回复
引用 4 楼 pany1209 的回复:
[quote=引用 2 楼 qq_35228149 的回复:] [quote=引用 1 楼 pany1209 的回复:] 一的一方

<set name="forums" inverse="true">
   		<key>
   			<column name="userId"></column>
   		</key>
   	<one-to-many class="pw.gouzai.home.blog.entity.Forum"/>
   </set>
多的一方

       <many-to-one name="user" class="user全限定名" column="userId" lazy="false"></many-to-one>
查看的时候报错 23:32:33,500 WARN [http-nio-8080-exec-10] SecurityMemberAccess:64 - Package of target [ognl.MethodFailedException: Method "test2" failed for object pw.gouzai.home.blog.action.ForumAction@7ecde4fc [java.lang.StackOverflowError]] or package of member [public java.lang.String java.lang.Throwable.getMessage()] are excluded! 就是出现我之前的那个情况了[/quote] java.lang.StackOverflowError。。。。栈溢出,不要都调用oString方法。。。得到集合直接遍历集合打印某些属性就可以了[/quote] 为什么会出现这种情况呢?会是我的配置文件出现的错误还是啥呢? 之前遍历个很大很大的那种订单跟详细订单都不会出现这种问题
李德胜1995 2017-07-18
  • 打赏
  • 举报
回复
引用 2 楼 qq_35228149 的回复:
[quote=引用 1 楼 pany1209 的回复:] 一的一方

<set name="forums" inverse="true">
   		<key>
   			<column name="userId"></column>
   		</key>
   	<one-to-many class="pw.gouzai.home.blog.entity.Forum"/>
   </set>
多的一方

       <many-to-one name="user" class="user全限定名" column="userId" lazy="false"></many-to-one>
查看的时候报错 23:32:33,500 WARN [http-nio-8080-exec-10] SecurityMemberAccess:64 - Package of target [ognl.MethodFailedException: Method "test2" failed for object pw.gouzai.home.blog.action.ForumAction@7ecde4fc [java.lang.StackOverflowError]] or package of member [public java.lang.String java.lang.Throwable.getMessage()] are excluded! 就是出现我之前的那个情况了[/quote] java.lang.StackOverflowError。。。。栈溢出,不要都调用oString方法。。。得到集合直接遍历集合打印某些属性就可以了
斯文这个禽兽 2017-07-18
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
一的一方

<set name="forums" inverse="true">
   		<key>
   			<column name="userId"></column>
   		</key>
   	<one-to-many class="pw.gouzai.home.blog.entity.Forum"/>
   </set>
多的一方

       <many-to-one name="user" class="user全限定名" column="userId" lazy="false"></many-to-one>
在查询所有的帖子的时候,debug查看froum的时候,froum里面的user里面对应的froums属性为: com.sun.jdi.InvocationException occurred invoking method. 导致整个froum值都为com.sun.jdi.InvocationException occurred invoking method.类型,从而报上面的那个错误。 ps:谢谢您的回答 我可以把整个配置代码都贴出来让您在有空的时候帮我看一下吗? 很简单几个文件的,真心感谢
斯文这个禽兽 2017-07-18
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
一的一方

<set name="forums" inverse="true">
   		<key>
   			<column name="userId"></column>
   		</key>
   	<one-to-many class="pw.gouzai.home.blog.entity.Forum"/>
   </set>
多的一方

       <many-to-one name="user" class="user全限定名" column="userId" lazy="false"></many-to-one>
查看的时候报错 23:32:33,500 WARN [http-nio-8080-exec-10] SecurityMemberAccess:64 - Package of target [ognl.MethodFailedException: Method "test2" failed for object pw.gouzai.home.blog.action.ForumAction@7ecde4fc [java.lang.StackOverflowError]] or package of member [public java.lang.String java.lang.Throwable.getMessage()] are excluded! 就是出现我之前的那个情况了
李德胜1995 2017-07-18
  • 打赏
  • 举报
回复
一的一方

<set name="forums" inverse="true">
   		<key>
   			<column name="userId"></column>
   		</key>
   	<one-to-many class="pw.gouzai.home.blog.entity.Forum"/>
   </set>
多的一方

       <many-to-one name="user" class="user全限定名" column="userId" lazy="false"></many-to-one>

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧