Я новичок в 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;
}
Можете ли вы помочь мне решить эту проблему, пожалуйста