我试图将名为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)的结果是成功的,但更改不会持续存在于数据库中。
感谢您的帮助。
答案 0 :(得分:0)
我通过在更新后刷新会话来解决。
s.update(w);
s.flush();