【发布时间】:2016-10-04 10:52:42
【问题描述】:
我有 2 个表(用户和公告),现在可以将更多用户分配给一个公告(关系是多对多的), 在我的控制器中,我有:
@Autowired
private AnnouncementService announcementService;
User user = (User) httpSession.getAttribute("userAccount");
Announcement announcement = announcementService.getAnnouncement(announcementId);
user.getAssignedUsersToAnnouncement().add(announcement);
announcement.getAnnouncementsAssignedToUsers().add(user);
我不想在我的数据库中再次保存这些对象,我只想将关系保存在我的第三个对象(“Assigned_Users”)中。 现在要坚持下去,我应该这样做:
announcementService.save(announcement); //due to this will be dublicates in my table
Announcement class{
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "Assigned_Users",
joinColumns = {@JoinColumn(name = "anunt_id")},
inverseJoinColumns = {@JoinColumn(name = "user_id")} )
private Set<User> announcementsAssignedToUsers = new HashSet<User>();
}
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "Assigned_Users",
joinColumns = {@JoinColumn(name = "user_id")},
inverseJoinColumns = {@JoinColumn(name = "anunt_id")})
private Set<Announcement> assignedUsersToAnnouncement = new HashSet<Announcement>();
我得到的用户和公告已经在数据库中,我不想再次保存它们。我怎样才能解决这个问题,并在多对多表中插入
【问题讨论】:
标签: hibernate spring-mvc jpa orm