2

我有一个用例,其中我只有几个更新的持久对象字段,其中包括表的主键。在这种情况下,我只想用这些字段更新行。我发现hibernate没有为此提供任何开箱即用的解决方案,所以我自己编写了一个方法,它使用反射来确定对象的所有非空字段并基于此创建更新查询并最终执行它。我的应用程序是使用 spring 框架编写的。到目前为止,我的做法是,我有一个单独的 util 类,它有一个更新方法,它接受会话对象、主键、主键值和表名。这是实现这个用例的好方法吗?有什么建议可以让这个更好吗?

4

2 回答 2

0

大多数时候,导致将默认值保存在要持久化的实体的可为空字段中的原因之一是,因为在实体的 POJO 中使用了原始数据类型。
请检查您是否没有使用任何原语。如果是,则切换到相应的包装类,然后保存。它应该在保存或更新后在提交时将 null 传递给数据库。
希望这能解决你的问题:)

于 2013-12-27T11:00:48.850 回答
0

你的问题我不清楚。对于更新,您可以进行选择然后保存。或者只是创建该实体并保存它(这里必须使用主键)。既然要更新,可以使用第一种方法。无需担心这里的必填字段。

于 2013-10-26T10:04:16.797 回答