我做的一个struts2和hibernate2的整合。
有两张双向关联的,一对多的表。
一个班级类Team
private Integer id;
     private String className;
     private Set<Student> student = new HashSet<Student>(0);
一个学生类:private Integer id;
     private String stuName;
     private int stuAge;
     private Character stuSex;
     private String stuAddress;
     private Date born;
     private Team team;
数据库中学生表有一个外键班级id.现在我要插入一个学生:现在问题是如何插入这个学生,关键是:怎么获取到这个班级对象Team..
因为在jsp页面上只有一个下拉列表标签.里面的班级是数据库查出来的。在不改变现有代码的情况下。怎么办呢??
怎么保存这个学生呢??
感觉这个挺棘手的。。求各位高手指点。。听说csdn牛人大大的有啊。。有木有??

解决方案 »

  1.   


    我要插入一个学生。学生类里有一个班级对象。实现多对一的关联。在学生表中有一个班级id。jsp页面上有学生对应的属性。其中有一个下拉列表是班级。。有id.有value。。我用struts2和hibernate结合。要插入一个学生。必然插入的是一个完整的student对象。
    而这个完整的对象现在就缺Team对象了。怎么把这个team弄出来???
      

  2.   

    Team t=new Team();
    t.setId("下拉列表ID");student.setTeam(t);这是最笨的方法,不过好用
      

  3.   

    你jsp中下拉列表的值传到后台是一个String的对象,假设是叫className
    你通过这个className来查找,你dao中应该有个findByClassName的方法吧?(没有的话可以myeclipse自动生成,参考里面的写法),也可以用hql语句查找,from Team as t where t.className='className',查找到的是一个List对象,可以直接取第一个(因为你的班级名应该是唯一),这样就能得到Team对象了
      

  4.   

       在struts 的保存学生action 里面  先通过 传过来的班级id查班级对象,再把这个班级对象赋给学生对象,最后把学生对象保存就行了。