1
요소 집합을 가져 오는 동안 문제가 발생했습니다 : 친구 세트는 비어 있습니다.최대 절전 모드 : 모음 가져 오기
@Entity
@Table(name="USER")
public class User {
@Id
@Column(name="USER_ID", nullable=false)
private String mail;
@Column(name="PASSWORD")
private String password;
@Column(name="SURNAME")
private String surname;
@Column(name="NAME")
private String name = null;
@Column(name="STATUT")
private StatutUser statut;
@Column(name="PHONENUMBER")
private int phoneNumber;
@OneToMany(cascade = CascadeType.PERSIST, mappedBy="friendPK.friend")
@Fetch(FetchMode.JOIN)
private Set<Friend> friends = new HashSet<Friend>();
...
Some getters and setters
두 번째 :
@Entity
@Table(name = "FRIEND")
public class Friend
{
@EmbeddedId
public FriendPK friendPK;
@Column(name = "FRIEND_STATUT")
private StatutFriend statutFriend;
...
}
마지막 하나
@SuppressWarnings("serial")
@Embeddable
public class FriendPK implements Serializable{
@ManyToOne
@JoinColumn(name="USER1_ID", referencedColumnName="USER_ID")
protected User user1;
@ManyToOne
@JoinColumn(name="USER2_ID", referencedColumnName="USER_ID")
protected User friend;
}
나는 모든 친구 '사용자를 얻으려고 컬렉션
가 3 종류입니다 비었다. 관계를 추가하는 방법입니다
여기에 파일이있다 :
private EntityManagerFactory emf;
private EntityManager manager;
public String addFriends(String mail1, String mail2){
EntityTransaction t;
t = manager.getTransaction();
try{
t.begin();
User user = manager.find(User.class, mail1);
User friend = manager.find(User.class, mail2);
Friend f = new Friend();
f.setStatutFriend(StatutFriend.TOCHECK);
FriendPK friendPK = new FriendPK();
friendPK.setFriend(friend);
friendPK.setUser1(user);
f.setFriendPK(friendPK);
Set<Friend> relationship = new HashSet<Friend>();
relationship = user.getFriends();
relationship.add(f);
Set<Friend> relationship2 = new HashSet<Friend>();
relationship2 = friend.getFriends();
relationship2.add(f);
user.setFriends(relationship);
friend.setFriends(relationship2);
manager.persist(user);
t.commit();
error.setReq(StatutReq.DONE);
}
catch(Exception e){
error.setReq(StatutReq.ABORTED);
error.setError(e.getMessage());
}
finally
{
if (t.isActive())
{
t.rollback();
}
}
내 코드에 관대주십시오 ... 저는 초보자입니다! 고마워요.
답장을 보내 주셔서 감사합니다. friendFK를 사용하지 않고 내 글로벌 구조를 변경했습니다. 그리고 지금은 효과가 있습니다! – fchenebault