我正在尝试将一个名为 Data 的实体嵌入到另一个名为 Workflow 的实体中。
我想获得这样的东西:
{
"_id" : ObjectId("my-object-id"),
"myproperty" : "myvalue",
"data":{
"category":"DataStore",
"cullTime":false,
"cullSpace":false,
"faveColor":"#449d44",
"faveShape":"ellipse",
"filter":false,
"id":"s1",
"name":"Source",
"type":"Rainfall"
}
}
我将我的实体设置如下:
@Embeddable
public class Data{
private String category;
private String faveColor;
private String faveShape;
private String id;
/* and so on with getters and setters */
在我的工作流实体中,我有:
@Entity
@Table(name = "workflows")
public class Workflow {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@TableGenerator(name = "workflows")
private ObjectId id;
public String getId() { return id.toString(); }
public void setId(ObjectId id) { this.id = id; }
@Embedded
private Data data;
/* and so on with getters and setters */
在我的数据库服务中,我有:
Session s = HibernateUtil.getSessionFactory().openSession();
Workflow w = (Workflow) s.get(Workflow.class, new ObjectId(UUID));
w.setData(data);
s.update(w);
s.update(obj) 的结果是成功的,但更改不会保留在数据库中。
谢谢您的帮助。