【发布时间】:2020-08-07 10:11:35
【问题描述】:
我是 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;
}
你能帮我解决这个问题吗
【问题讨论】: