我有从Java代码到postgresql的更新对象的问题。更新对象时,id出现问题,因为id为null。因此,在数据库中创建新行而不是覆盖同一行。看来,数据库中的行:
id = 1
name = "name"
then I'm sending a json, like:
{
name: "newName"
}
然后我得到了新的一行,看来:
id = 1, name = "name"
id = 2, name = "newName"
这是因为当我发送json时,id为null,因此postgresql正在创建新行,但是我想用覆盖该行id = 1
。添加的解决方案之一@OneToOne(orphanRemoval = true)
,但我不喜欢它,因为它先删除了旧ID,然后又创建了新ID。如果没有ID,如何覆盖初始行?
谢谢!
class A{
@Id
@GeneratedValue
UUID id;
@OneToOne(mappedBy = "A", cascade = CascadeType.ALL)
B b;
}
class B{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
@OneToOne(optional = false)
@JoinColumn(name = "A_id")
A a;
}
updatedA.setInfo(jsonSend.getInfo());
之间,我用“ spring beanutils copyproperties”解决了我的问题,也许对某人有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句