我有一个用例,其中包含表的主键的持久对象只有几个更新字段。在这种情况下,我只想用这些字段更新行。我发现hibernate并不提供任何解决方案,所以我自己编写了一个方法,它使用反射来确定对象的所有非空字段,并基于此创建更新查询并最终执行它。我的应用程序是使用spring框架编写的。到目前为止,我做到这一点的方式是,我有一个单独的具有更新方法的util类,它使用会话对象,主键,主键值和表名。这是实现这个用例的好方法吗?任何建议,使这更好?只更新休眠中的对象的非空字段
1
A
回答
0
你的问题不清楚给我。为了更新,你可以做一个选择,然后保存它。或者只是创建该实体并保存它(主键在这里是必需的)。既然你想更新,你可以使用第一种方法。这里不需要打扰强制性领域。
0
由于在实体的POJO中使用了原始数据类型,因此大多数时间导致将实体的可空字段中的默认值保存为持久的原因之一。
请检查你是否没有使用任何基元。如果是切换到相应的包装类,然后保存。保存或更新后,它应该将null传递给数据库。
希望这可以解决您的问题:)
相关问题
- 1. 只更新非空字段
- 2. 休眠:更新子对象
- 3. 休眠中的对象更新
- 4. 休眠应该只更新数据库中的某些字段
- 5. 休眠:更新关联的对象
- 6. 休眠更新对象的所有列
- 7. 更新休眠中的一对多字段
- 8. 选择休眠空字段
- 9. 只更新对象的几个字段
- 10. 休眠不更新(合并)对象
- 11. 休眠更新多个对象列表
- 12. 休眠:在实体更新栏只有当特定字段为空
- 13. 休眠:更新空的子表
- 14. 休眠ORM值对象中的常见字段
- 15. JPA /休眠使用setters中的关联对象而字段为空
- 16. 使用休眠更新映射表中的其他字段
- 17. 休眠不更新事务性方法中的持久对象
- 18. 使用OpenSessionInView更新休眠中的对象过滤器
- 19. 更新表的特定字段,而不管休眠中的其他字段
- 20. 休眠合并和刷新不保留对对象的更改
- 21. 休眠 - 更新多对多关系的对象
- 22. 休眠前更新没有更新字段
- 23. MYSQL:最充分的方法来只更新非空字段?
- 24. 休眠filternig对象的子类的特定字段
- 25. 休眠只读会话 - 更新实体
- 26. Rails的更新只空字段
- 27. 从休眠对象的表中获取只选中的列
- 28. 休眠空指针保存对象
- 29. 休眠实体映射空对象
- 30. 从休眠3.6更新到休眠4.0
为什么你只想更新这些字段? – 2013-10-26 10:03:34