public ActionForward delLink(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String urlKey = "";
String groupID = request.getParameter("groupId");
String linkmanID = request.getParameter("linkmanId");
int groupid = Integer.parseInt(groupID);
int linkmanid = Integer.parseInt(linkmanID);
Set<Linkman> linkmans = new HashSet<Linkman>(0);
Group group = groupService.getGroupById(groupid);
Linkman linkman = linkmanService.getLinkmanById(linkmanid);
linkmans.add(linkman);
group.setLinkmans(linkmans);
groupService.update(group);
Group group1 = null;
group1 = groupService.getGroupById(groupid);
System.out.println(group1.getLinkmans().size());
request.setAttribute("linkMans",group1.getLinkmans());
request.setAttribute("group", group1);
    urlKey = "delLink";
return mapping.findForward(urlKey);
}我的问题是在第一处的时候可以获取group1.getLinkmans().size()  第二处却不可以,问题出在哪呢? 高手指点下

解决方案 »

  1.   

    得不到只有2种可能:
    1:第二处中的groupid没有值...
    2:groupService变了...
      

  2.   

    1,groupid 有值 
    2,groupService的方法没变 都一样的东西
      

  3.   

    Linkman.hbm.xml<?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="com.ssh.pojo.Linkman" table="linkman" catalog="addresslist">
            <id name="linkmanid" type="java.lang.Integer">
                <column name="linkmanid" />
                <generator class="identity" />
            </id>
            <property name="linkmanname" type="java.lang.String">
                <column name="linkmanname" length="20" not-null="true" />
            </property>
            <property name="sex" type="java.lang.Integer">
                <column name="sex" />
            </property>
            <property name="phone" type="java.lang.String">
                <column name="phone" length="13" />
            </property>
            <property name="mobilephone" type="java.lang.String">
                <column name="mobilephone" length="11" />
            </property>
            <property name="officeaddress" type="java.lang.String">
                <column name="officeaddress" length="50" />
            </property>
            <property name="homeaddress" type="java.lang.String">
                <column name="homeaddress" length="50" />
            </property>
            <property name="email" type="java.lang.String">
                <column name="email" length="50" />
            </property>
            <property name="qq" type="java.lang.Integer">
                <column name="qq" />
            </property>
            <property name="note" type="java.lang.String">
                <column name="note" length="100" />
            </property>
            <set name="groups" table="grouplist" inverse="false" cascade="save-update" catalog="addresslist">
                <key>
                    <column name="linkmanid" not-null="true" />
                </key>
                <many-to-many class="com.ssh.pojo.Group"  column="groupid"/>
            </set>
        </class>
    </hibernate-mapping>
      

  4.   

    Group.hbm.xml<?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="com.ssh.pojo.Group" table="group" catalog="addresslist">
            <id name="groupid" type="java.lang.Integer">
                <column name="groupid" />
                <generator class="identity" />
            </id>
            <property name="groupname" type="java.lang.String">
                <column name="groupname" length="50" />
            </property>
            <set name="linkmans" inverse="true" cascade="save-update" table="grouplist" catalog="addresslist">
                <key>
                    <column name="groupid" not-null="true" />
                </key>
                <many-to-many class="com.ssh.pojo.Linkman" column="linkmanid" />
            </set>
        </class>
    </hibernate-mapping>
      

  5.   

    其实很简单,因为你在Group.hbm.xml中的属性linkmans的inverse="true",这就表明此时Group不会维护关系,而由Linkman维护其关系,因此,你调用group.setLinkmans(linkmans)并不会改变关系字段。有两种方法:
    1,去掉inverse="true",不推荐。
    2,让linkman维护其关系。