hibernate annotation 怎么只更新被赋值字段
用hibernate的update会更新所有的字段 包括没有发生变化的字段
会把你不想改变的字段全部清空!怎么才可以只更新有赋值的字段?
好像说用dynamic-update属性 在哪里设置? 查了文档按那样设置好像不行
关键是要更新的字段是不确定的。 可以是除了主键外的任何一个。任何一个都可能是null值哦。 有个注解就是可以判断如果为null值就不会更新。但是我按文档那样加在类上面不管用,还是会全部更新。@org.hibernate.annotations.Entity(dynamicUpdate=true,dynamicInsert=true)
@Entity
@org.hibernate.annotations.Entity(dynamicUpdate=true,dynamicInsert=true)
@Table(name="patient")
public class Patient {
。。。。}
hibernate annotation 怎么只更新被赋值字段
答案:2 悬赏:50
解决时间 2021-03-09 15:23
- 提问者网友:烟刺痛了眼
- 2021-03-08 17:22
最佳答案
- 二级知识专家网友:邪性洒脱
- 2021-03-08 18:30
这与hibernate annotation 没有关系, 你的对象不是Load出来的,而是是new出来的,你只对需要的字段赋值了,其余字段没有值。hibernate会认为你现在需要把其余字段改成空,你只需要把对象创建的改成用hibernate Load出来, 然后更改你需要Update的 值,这样就能了。dynamic-update 是好像是对托管状态的 对象进行自动更新
全部回答
- 1楼网友:我的任性你不懂
- 2021-03-08 19:14
hibernate 的update方法本来就会全部从新赋值的,要么你加这个@column(updatable = false, length = 20) ,不过这个只能赋值一次,后面就不能该了。
不然就写hql吧。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |