Hibernate在联接表上连续执行delete语句



我面临hibernate多对多关系联接表的问题。我有两个实体有很多对很多的关系。

This is the Post class
------------------------
@ManyToMany(
cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
}
)
@JoinTable(name = "post_tag",
joinColumns = @JoinColumn(name = "post_id"),
inverseJoinColumns = @JoinColumn(name = "tag_id")
)
public Set<Tag> getTags() {
return tags;
}
This is the Tag class
----------------------
@ManyToMany(mappedBy = "tags")
public Set<Post> getPost() {
return posts;
}

This is the join table class (post_tag)
------------------------------------------
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "post_id")
public Post getPost() {
return post;
}

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "tag_id")
public Tag getTag() {
return tag;
}

我看到这个查询在一小时内被调用了近5K次,即使是在GET调用中也是如此。想知道这里的映射是否有明显的错误吗?

FROM post_tag
WHERE post_id=$1

我解决了这个问题。问题出在Session.flush((方法上。flush((方法基于flush配置(AUTO、MANUAL、COMMIT和ALWAYS(执行。此链接有助于了解Session.flush((

什么';s在Hibernate 中使用session.flush((

最新更新