首页 文章

Hibernate ManyToMany在更新时出现连接表问题

提问于
浏览
1

我正在努力使ManyToMany协会适用于所有CRUD操作
我需要实体:地方和活动地点可以举办多个活动,活动可以在多个地方举行

In first case I had

在PlaceDto课程中

@ManyToOne(targetEntity = EventDto.class,cascade = {CascadeType.PERSIST,CascadeType.MERGE})@ JoinTable(name =“EVENTS_PLACES”,joinColumns = {@ JoinColumn(name =“PLACE_ID”)},inverseJoinColumns = {@JoinColumn (name =“EVENT_ID”)})私人列表事件;

在PlaceDto课程中

@JoinTable(name =“EVENTS_PLACES”,joinColumns = @JoinColumn(name =“EVENT_ID”),inverseJoinColumns = @JoinColumn(name =“PLACE_ID”))私人列表位置;

在这种情况下,在更新地点时,地点与其事件之间的链接被删除
使用DELETE FROM EVENTS_PLACES where ...语句

Second case
因此,在阅读了一些文档后,我将PlaceDto更改为

@ManyToMany(mappedBy =“events”,cascade = {CascadeType.PERSIST,CascadeType.MERGE},fetch = FetchType.LAZY,targetEntity = FundDto.class)private list places;

当更新一个地方时,一切似乎都很好但是当我尝试创建一个事件时,它也尝试创建一个地方
=>这会导致主键违规

我有使用ecplise的hashcode和equals over ....

谢谢你的帮助

请毫不犹豫地将我指向一个页面,其中展示并解释了完全可用且经过测试的ManyToMany关系

克里斯托弗

1 回答

  • 4

    这是一个很好的example

    只是尝试将他们拥有的内容复制到您自己的代码中,它应该可以工作 . 如果它仍然没有,请发布两个类的完整列表和导致错误的代码,也许我可以看到问题是什么 .

相关问题