ManyToMany的双向关联,操作中间表问题

leadergg 2009-07-23 10:47:44
两张表:类别和模块。
配置如下:
主控方:
@ManyToMany(fetch = FetchType.LAZY,cascade=CascadeType.PERSIST)
@JoinTable(
name="ITSM_CI_CATEGORY_CM",
joinColumns = { @JoinColumn(name="CATEGORY_ID")},//,referencedColumnName = "id")},
inverseJoinColumns = @JoinColumn(name="CUSTOM_MODEL_ID")
)
// @ManyToMany(fetch = FetchType.LAZY, mappedBy="categorySet")
// @FieldProp(symbol = "此类别的模块", desc = "")
public Set<CiCustomModel> getCiCMSet() {
return ciCMSet;
}

public void setCiCMSet(Set<CiCustomModel> ciCMSet) {
this.ciCMSet = ciCMSet;
}

被控方:
@ManyToMany(fetch = FetchType.LAZY, mappedBy="ciCMSet")
@FieldProp(symbol = "此自定义模块所在类别", desc = "")
// @ManyToMany(fetch = FetchType.LAZY,cascade=CascadeType.PERSIST)
// @JoinTable(
// name="ITSM_CI_CATEGORY_CM",
// joinColumns = { @JoinColumn(name="CUSTOM_MODEL_ID")},
// inverseJoinColumns = @JoinColumn(name="CATEGORY_ID")
// )
public Set<CiCategory> getCategorySet() {
return categorySet;
}

public void setCategorySet(Set<CiCategory> categorySet) {
this.categorySet = categorySet;
}

但是这样就有个问题,应该是manytomany的问题:
用this.ciCategory.setCiCMSet(ciCMSet);在主控方可以保存多次多个模块。
而在被控方ciCustomModel.setCategorySet(ccSet);每次都是只能保存最后一个类别。

现在的需求希望能在类别保存多个模块,模块也能选择多个类别。
但是好像manytomany的策略是主控方可以这样,被控方这样保存就会先删除之前的和自己相关的记录,再保存新的。

不知道有没有实现我想要功能的解决办法?
...全文
2965 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fyjava1984 2009-08-07
  • 打赏
  • 举报
回复
设置 inverse属性
lghndyz 2009-07-29
  • 打赏
  • 举报
回复
帮顶!!
sangshusen_1988 2009-07-23
  • 打赏
  • 举报
回复
只有关系维护方才能维护关系。
你可以设置下级联baocun kankan

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧