2

我正在尝试@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的朋友后,朋友列表没有正确更新。

4

1 回答 1

1

我在我设置的现有项目中尝试了您的实体,它似乎对我来说工作正常。我正在使用带有 java 1.7 和 Scala 2.10.0 的 play 2.1.1。这个增强问题可能会导致您的问题。

于 2013-07-19T23:43:24.533 回答