使用hibernate的一个问题 2003-08-05 you.cai 使用集合时,发现一个inverse 属性,看了文档inverse (optional - defaults to false) mark this collection as the "inverse" end of a bidirectional association。字面理解标记此集合作为双向关联的反转端。没有理解其含义,谁能解释解释含义和作用?谢谢。
yehs220 2003-08-05 15:15 仅仅改变inverse端,是不会导致persistence的,要保证两端同时改变,如user.getGroups().add(group);group.getUsers().add(user);或者parent.getChildren().add(child);child.setParent(parent);
yehs220 2003-08-06 20:39 如果这样设置的话,添加一个child时就需要两条sql语句,一条insert语句插入child的数据,一条update语句更新child的外键,这样一来效率低,二来如果child的外键有一个not null约束的话,就会违反这个约束。而设置many端为inverse=true,而one端为inverse=false,就只需要一条insert语句,插入child的数据和外键。