MongoDB中的Hibernate嵌入式实体不';t更新
我正在尝试将名为Data的实体嵌入到另一个名为Workflow的实体中 我想得到这样的东西:MongoDB中的Hibernate嵌入式实体不';t更新,hibernate,mongodb,hibernate-ogm,Hibernate,Mongodb,Hibernate Ogm,我正在尝试将名为Data的实体嵌入到另一个名为Workflow的实体中 我想得到这样的东西: { "_id" : ObjectId("my-object-id"), "myproperty" : "myvalue", "data":{ "category":"DataStore", "cullTime":false, "cullSpace":false, "faveColor":"#449d44", "fave
{
"_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)的结果成功,但更改不会在数据库中持久化
谢谢您的帮助。我通过更新后刷新会话解决了此问题
s.update(w);
s.flush();