Java Jackson将嵌套对象保存到数据库
我正在使用jackson将json转换为java对象 java对象:Java Jackson将嵌套对象保存到数据库,java,json,hibernate,jackson,Java,Json,Hibernate,Jackson,我正在使用jackson将json转换为java对象 java对象: class Person{ Long id; String name; City city; } class City{ Long id; String cityName; } jcson转换: List<Person> personList = objectMapper.readValue(json, new TypeReference<List<Person>
class Person{
Long id;
String name;
City city;
}
class City{
Long id;
String cityName;
}
jcson转换:
List<Person> personList = objectMapper.readValue(json, new TypeReference<List<Person>>() { });
您可以建议吗?您必须在Person实体的City属性中包含
cascade=“all”
(如果使用xml)或cascade=CascadeType.all
(如果使用注释)
这是因为您正试图保存一个引用到未保存实体的实体
如果删除某人时不想删除城市记录
您必须通过以下步骤:
1-从数据库获取城市:city-city=session.get(id,city.class)代码>
2-设置个人所在城市:person p=new person();p、 西城(市)代码>
3-保存Person对象。必须在Person实体的City属性中包含cascade=“all”
(如果使用xml)或cascade=CascadeType.all
(如果使用注释)
这是因为您正试图保存一个引用到未保存实体的实体
如果删除某人时不想删除城市记录
您必须通过以下步骤:
1-从数据库获取城市:city-city=session.get(id,city.class)代码>
2-设置个人所在城市:person p=new person();p、 西城(市)代码>
3-保存Person对象。能否添加映射+dao?dao:session.saveOrUpdate(Person);可以添加映射+dao吗?dao:session.saveOrUpdate(person);使用级联删除时,用户将删除城市,但在本例中不是这样,因为一个城市可以应用于少数用户。城市的数据已经存储在数据库中,我不需要重新保存。当使用cascade删除时,人员将删除城市,这在这种情况下是不正确的,因为一个城市可以应用于少数用户。城市的数据已经存储在数据库中,我不需要重新保存
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: model.City