【发布时间】:2010-09-07 08:25:39
【问题描述】:
在下面的演示代码中,User 是父实体,与BlogPost 具有一对多关系。
由于BlogPost 是User 的子项,其主键字段不能是自动生成的long 值,而必须是使用KeyFactory 实例化的Key 对象。
目前,在为BlogPost 实例化Key 时,我将BlogPost blogTitle(不保证唯一)传递给createKey 方法
但我不知道如何为BlogPost 生成唯一的 ID 值?
@Entity
public class BlogPost {
@Id
private Key key;
private String blogTitle;
private Text blogText;
@ManyToOne(fetch = FetchType.LAZY)
private User user;
public BlogPost(Key parentKey, String blogTitle) {
this.key = KeyFactory.createKey(parentKey, "BlogPost", blogTitle);
}
}
@Entity
public class User {
@Id
private Key key;
private String username;
private String email;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<BlogPost> blogPosts;
public User(String username){
this.key = KeyFactory.createKey("User", username);
}
}
【问题讨论】: