Hibernate的ManyToMany自引用用户朋友关系。

我是hibernate的新手,我试图用ManyToMany关联建立一个用户朋友的双向关系,但当我尝试插入它时,什么也没发生。

用户实体

@Entity
@Table(name = "USERS")
public class User implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int idUser;
    private String pseudo;
    private String password;
    private String nom;
    private String prenom;
    private String email;
    private Boolean isConnected;
    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name="tbl_friends",
            joinColumns={@JoinColumn(name="userId")},
            inverseJoinColumns={@JoinColumn(name="friendId")}
    )
    private List<User> friends;

    @ManyToMany(mappedBy = "friends")

    private List<User> friendOf;

添加功能

    @Override
    public boolean addFriend(User user, User newFriend) {
        EntityTransaction transaction = entityManager.getTransaction();
        if(!transaction.isActive())
            transaction.begin();
        try {
            Query query = entityManager.createQuery("select u from User u where u.pseudo = :pseudo");
            query.setParameter("pseudo", user.getPseudo());
            user = (User) query.getSingleResult();
            query = entityManager.createQuery("select u from User u where u.pseudo = :pseudo");
            query.setParameter("pseudo", newFriend.getPseudo());
            newFriend = (User) query.getSingleResult();
            user.getFriends().add(newFriend);
            entityManager.persist(user);
            transaction.commit();
            return true;
        }catch (Exception e){
            transaction.rollback();
            e.printStackTrace();
        }
        return false;
    }

你能帮我解决这个问题吗?

解决方案:

我在用户类 “getFriends “中对getter做了一些修改,在删除这些修改后,它完美地工作了。

给TA打赏
共{{data.count}}人
人已打赏
未分类

pandas group_by dataframe在写入excel时,只输出聚合列;如何在excel上获得整个输出?

2022-9-8 11:33:21

未分类

当保存字段标记为updatable=false的实体时,禁用警告 "实体已被修改,但不会更新,因为属性是不可改变的"。

2022-9-8 11:33:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索