ssh整合遇到的问题

一、.使用Hibernate时出现的问题:

       ①打印结果时 抛出栈溢出异常  在写完与数据交互的dao层方法之后,用Junit对方法正确性做出测试时,由于要打印出对应实体类的结果,所以就出现了问题了。

1.前提交代,三个实体类的关联关系表述:

//部门类
public class Department {
	...
       //部门类和职务类的关联关系为  1:n
	private Set<Post> posts;
}
//职务类
public class Post {
	...
        //双向关联(部门类和职务类)
	private Department department;
        //职务类和员工类的关联关系为  1:n
	private Set<Staff> staffs;
	@Override
	public String toString() {
		return "Post [department=" + department + ", staffs=" + staffs + "]";
	}
}
//员工类
public class Staff {
        ...
 	//双向关联员工类和职务类
	private Post post;
}
        2.使用Junit进行单元测试,看到测试实体类的每个属性的值。按照正常的方法使用快捷键改写ToString方法,如职务类中的写法,在进行查询操作后,打印实体类,会出现栈溢出的异常。

        .3.问题原因:当在每个关联的实体类中都改写了ToString方法之后,ToString方法中的关联的其他类就会调用自身的ToString方法,继而再相互调用,就会出现一直循环,即报出栈溢出异常;

         4.改正方法:修改ToString方法的显示结果,不要直接写成实体对象,改成用点的方式,点出其属性值即可”。

②.按照上面的方法可以解决测试的时候的问题,但是在使用structs2中的select标签进行自动回显时,会报下面这个异常:

        The requested list key 'xxxxx' could not be resolved as a collection/array/map/enumeration/iterator type

        原因:ToString 方法被改写成不是实体类的对象的形式,故不能自动查找到所需要的值。

        解决方法,删除自己改写的ToString方法即可



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值