我正在尝试在同一实体中创建@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 + "]";
}
}
问题是,在向Client
添加新朋友并按ID搜索相同的Client
后,朋友列表未正确更新。
答案 0 :(得分:1)
我在我设置的现有项目中尝试了您的实体,它似乎对我来说很好。我正在使用java 2.1和java 1.7以及Scala 2.10.0。 this issue with enhancement可能导致您的问题。