我对Jackson和Hibernate有疑问。我的应用程序基于休息,对象作为json在前端和后端之间传输,所以当我将json反序列化为java对象并且我想加载这些属性时,我遇到了某些对象的属性丢失的情况在持续更改之前(因为我不想丢失数据库中的数据)。有没有人想解决这个问题?
修改
我不确定我的问题是否理解正确。所以我举一个简单的例子,我试着说。
所以我有以下Java类:
@Entity
@Table( name = "employees" )
public class Employee extends BaseEntity<Long> {
private String lastName;
private String firstName;
@Embedded
private Address address;
//... a lot of other attributes and methods..
}
现在我从前端获取json数据,这是这样的:
{
"id":17,
"lastName":"Smith",
"firtName":"John"
}
接下来我想将这些更改保存到数据库,但我的反序列化java实体完全不完整,有很多缺少的属性和引用(值为空)。如何在持久化对象之前加载那些缺少的属性值,而不会丢失我从UI获得的那些新值?
我尝试使用EntityManager的合并方法,但它没有工作......
答案 0 :(得分:0)
从数据库加载数据(如果记录已存在),请执行合并&amp;保存。
答案 1 :(得分:0)
您可以将多个DTO作为JPA @Entities映射到同一个数据库表。当您保存一个这样的DTO时,只有它的字段传播到数据库,而不会干扰当前DTO未映射的其他数据库列。