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做了一些修改,在删除这些修改后,它完美地工作了。

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/1330.html

(0)
上一篇 2022年6月29日 下午4:06
下一篇 2022年6月29日 下午4:06

相关推荐

发表评论

登录后才能评论