1
我試圖獲取元素集合時遇到了一個問題:Friend集合爲空。休眠:獲取集合
有3類:
@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;
}
當我試圖讓所有的朋友的用戶,收集是空的。
這裏的文件,其中添加關係的方法是:
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 2013-05-13 08:09:27