我有两个实体:
父母:

public class UserGroup{
   @OneToMany(fetch = FetchType.EAGER, mappedBy = "userGroup", cascade = CascadeType.ALL)
    private List<User> users;
}


和孩子:

public class User{
    @ManyToOne(fetch = FetchType.EAGER)
    @Fetch(FetchMode.SELECT)
    @JoinColumn(name = "user_group_id")
    private UserGroup userGroup;
}


当我尝试使用此方法在用户列表中使用一个用户保存UserGroup时:

  @Transactional
public E save(E e) {
    em.persist(e);
    em.flush();
    em.refresh(e);
    return e;
}


我的父母和孩子正在保存,但子对象中的user_group_id为null。
有什么解决办法吗?

最佳答案

考虑到您给了UserGroup对象以及User列表以保存方法:因此您的代码应为:

em.save(userGroup);
for(User user : UserGroup.getUsers())
{
user.setuser_group_id(userGroup.getUserGroupId());
em.save(user);
}

10-06 06:22