po类
public class Role implements java.io.Serializable { // Fields private String roleId;
private String PId;
private String RName;
private String RRe;
private Date updateTime;
private String updator;
private Date createTime;
private String creator;
private Set roleTrees = new HashSet(0);
private Set groupRoles = new HashSet(0);
private Set userRoles = new HashSet(0);在我保存这个对象的时候
save(Role);
为什么会先产生了三条查询语句,分别根据roleId去查roleTrees,groupRoles,userRoles,然后才会出现insert语句
我没有配置级联操作
请高手解答

解决方案 »

  1.   

    主键的关系。如果不先查询的话他怎么知道是哪条数据?所以三条语句要select最后才insert
      

  2.   

    one to many 配了吧?
      

  3.   

    我的配置文件是这样的
     <set name="roleTrees" inverse="true">
                <key>
                    <column name="ROLE_ID" length="20" />
                </key>
                <one-to-many class="com.currency.po.RoleTree" />
            </set>
            <set name="groupRoles" inverse="true">
                <key>
                    <column name="ROLE_ID" length="20" />
                </key>
                <one-to-many class="com.currency.po.GroupRole" />
            </set>
            <set name="userRoles" inverse="true">
                <key>
                    <column name="ROLE_ID" length="20" />
                </key>
                <one-to-many class="com.currency.po.UserRole" />
            </set>
      

  4.   

    你在many一方有没有配置cascade呢,怎么配置的?是ALL吗?可能是这个的关系啊
      

  5.   

    cascade 配了吧,是他导致的