hibernate 注解一对多问题
通过一方删除多方时,怎么不产生update语句一方实体@OneToMany(fetch=FetchType.EAGER)@JoinColumn(name="tours_i...
通过一方删除多方时,怎么不产生update语句 一方实体@OneToMany(fetch=FetchType.EAGER) @JoinColumn(name="tours_id")
@Cascade(value={CascadeType.SAVE_UPDATE,CascadeType.DELETE}) @Fetch(FetchMode.SUBSELECT)
public ListgetStrokeList() {
return strokeList;
}
public void setStrokeList(ListstrokeList) {
this.strokeList = strokeList;
}
多方实体
@ManyToOne(targetEntity=ToursEntity.class) @JoinColumn(name="tours_id",updatable=false,insertable=false)
public ToursEntity getTours() { return tours; }
public void setTours(ToursEntity tours) { this.tours = tours; }
update一方时 在多方表里会出现tours_id=null的很多条数据,也就是说在update一方时先把多方的tours_id修改成null然后又插入新的多方的数据,我想是直接删除多方数据然后再插入新的多方数据。 展开
@Cascade(value={CascadeType.SAVE_UPDATE,CascadeType.DELETE}) @Fetch(FetchMode.SUBSELECT)
public ListgetStrokeList() {
return strokeList;
}
public void setStrokeList(ListstrokeList) {
this.strokeList = strokeList;
}
多方实体
@ManyToOne(targetEntity=ToursEntity.class) @JoinColumn(name="tours_id",updatable=false,insertable=false)
public ToursEntity getTours() { return tours; }
public void setTours(ToursEntity tours) { this.tours = tours; }
update一方时 在多方表里会出现tours_id=null的很多条数据,也就是说在update一方时先把多方的tours_id修改成null然后又插入新的多方的数据,我想是直接删除多方数据然后再插入新的多方数据。 展开
1个回答
展开全部
@OneToMany(fetch=FetchType.EAGER,orphanRemoval=true)
就可以了,但是这个是jpa2里面的标签才提供了。你hibernate3.5以上的版本才能使用。
就可以了,但是这个是jpa2里面的标签才提供了。你hibernate3.5以上的版本才能使用。
追问
能给我发jar包吗?我下了几个都没有注解的core包,怎么都找不到可用的jar包,多谢了!!!!!除了增加版本还有其他的方法吗?
追答
你直接去官网下载hibernate3.6就可以了,注解包在lib/jpa/里面。
如果你的版本比较低的话,你就只有自己用HQL删了,
DELETE FROM Many WHERE many.one = ?先把和one方关联的many方删了,再删one方吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询