我正在尝试使用Morphia + MongoDb每个类配置表
@Entity("user")
public class User{
@Id
private ObjectId id;
private String username;
public void setId(ObjectId id){
this.id = id;
}
public ObjectId getId(){
return this.id;
}
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return this.username;
}
}
和助理
@Entity("assistant")
public class Assistant extends User{
private String fullname;
public String getFullname(){
return this.fullname;
}
public void setFullname(String fullname){
this.fullname = fullname;
}
}
我希望拥有一个具有相同ObjectId的用户文档和助理文档。怎么做?
答案 0 :(得分:1)
MongoDB不是关系数据库,你需要改变你的心理和心理。数据库模型。
如果某人是助手,则所有数据都将转到assistant
集合。没有连接(聚合除外,但您不希望为简单的用户查找执行此操作),因此所有信息都应位于一个实体中。
您甚至可以将助理留在user
集合中。或者用更一般的术语来说:将所有子类保留在其父类的实体中。
Morphia将自动为每个实体存储Java类,因此您可以简单地对其进行过滤。由于没有严格的模式,因此没有空值,因为JSON只存储可用的属性。