杰克逊将嵌套对象保存到数据库中

时间:2016-06-22 07:13:58

标签: java json hibernate jackson

我使用jackson将json转换为java对象。

java对象:

List<Person> personList = objectMapper.readValue(json, new TypeReference<List<Person>>() { });

jcson转换:

org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: model.City

保存此人时,我收到以下错误:

{{1}}

你能告诉我吗?

1 个答案:

答案 0 :(得分:0)

您必须在Person实体的City属性中包含cascade="all"(如果使用xml)或cascade=CascadeType.ALL(如果使用注释)。

这是因为你正在尝试保存一个被未保存的实体引用的实体。

如果您不想在删除人员时删除城市记录 你必须通过这些步骤: 1-从数据库获取城市:City city=session.get(id,City.class);

2-设置人员的城市:Person p=new person(); p.setCity(city);

3-保存Person对象。