我正在尝试@OneToMany
在同一实体中创建关系。这是一个示例代码:
@Entity
public class Client extends Model{
private static final long serialVersionUID = 1L;
public Client(String username, String email) {
super();
this.username = username;
this.email = email;
}
@Id
String username;
@Required
String email;
@ManyToOne
Client parent;
@OneToMany(mappedBy="parent")
Set<Client> friends = new HashSet<Client>();
static Finder<String,Client> find = new Finder<String,Client>(String.class, Client.class);
public static void create(Client regUser){
regUser.save();
}
public static Client getByUsername(String username){
return find.byId(username);
}
public void addFriend(Client relatedClient){
this.friends.add(relatedClient);
relatedClient.update();
this.update();
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the email
*/
public String getEmail() {
return email;
}
/**
* @param email the email to set
*/
public void setEmail(String email) {
this.email = email;
}
/**
* @return the friends
*/
public Set<Client> getFriends() {
return friends;
}
/**
* @param friends the friends to set
*/
public void setFriends(Set<Client> friends) {
this.friends = friends;
}
/**
* @return the parent
*/
public Client getParent() {
return parent;
}
/**
* @param parent the parent to set
*/
public void setParent(Client parent) {
this.parent = parent;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Client [username=" + username + ", email=" + email + "]";
}
}
问题是在向 a 添加新朋友Client
并通过 Id 搜索相同Client
的朋友后,朋友列表没有正确更新。