【发布时间】:2013-07-01 02:07:23
【问题描述】:
我有一个对象作为另一个对象的成员,比如说 Object1 和 Object 2。 对象 2 在对象 1 中,并且有 3 个字段。
我从用户那里收到对象 1 的详细信息。 还有来自用户的对象 2 的 ID 和名称,需要将 Object1 保存在数据库中,所以我使用 session.saveOrUpdate(object1),
但是它会保存 object1 并保留用户提供的 object 2 的字段,并将其他字段更改为 NULL。
我应该传递 Object2 的所有字段来避免这个问题,还是有办法阻止休眠将这些字段更改为 NULL 并保留它们的值?
Object1
ID
name
@ManyToOne (cascade = CascadeType.ALL)
Object2
Object2
ID
name
age
示例
我在数据库中有什么
对象 2 的 ID =13 名称=XYZ 年龄=32
用户进入
对象 1 名称 = 杰克
对象 2 ID = 13 名称=XYZ
保存object1后,object2如下
Object2 ID = 13 name=XYZ age=NULL
【问题讨论】:
-
对于更新,您应该先从 db 读取,然后应用 ypur 更改,然后保存
-
@WandMaker 问题已更新
-
Object2 是嵌入对象还是关联(数据库中的外键)?如果是关联,在关系上设置什么级联?
-
@AmirPashazadeh 其外键在对象 1 表中,问题已更新
标签: hibernate jakarta-ee