hibernate一对多多对一方式更新的一些总结
有两张表,其中 infoCenter表中有字段conference_key关联info_conference的主键
这样在JAVA中的InfoConference类中有private Set infoCenters这个属性了
我现在要更新这个infoCenters,一开始一直没成功,后来查了文档,把设置贴出来。。。
infoConference.hbm.xml:
?<set
??????? name="infoCenters"
??????? lazy="false"
??????? order-by="title desc"
??????? cascade="all"
??? >
??????? <key>
??????????? <column name="conference_key" />
??????? </key>
??????? <one-to-many
??????????? />
??? </many-to-one>
然后在程序里面更新是这么写:
Set<InfoCenter> infoCenters = new HashSet<InfoCenter>();if (null != infos) {for (int i = 0; i < infos.length; i++) {InfoCenter infoCenter = infoCenterAccessor.getInfoCenter(infos[i]);if (null != infoCenter) {infoCenters.add(infoCenter);}}infoConference.getInfoCenters().clear();infoConference.setInfoCenters(infoCenters);}else{infoConference.setInfoCenters(null);}infoConferenceAccessor.saveOrUpdate(infoConference);? 原来的写法是没有
infoConference.getInfoCenters().clear();/*导致从前的数据没被清理*/1 楼 flylovejings 2008-12-31 infoConference.getInfoCenters().clear();
mark it!