0

嗨,如果想更新一行的某些特定列,那么我应该在休眠中使用更新查询还是简单地使用session.update()休眠的方法。才知道

@org.hibernate.annotations.Entity(
        dynamicUpdate = true 

如果设置了注释,我可以更新特定的列。我以前没有用过这个,所以只想知道是否有使用这个的规范。只是需要你的帮助来做出决定。哪种方法会更好?

4

1 回答 1

1

关闭动态会话更新后,Hibernate 将缓存所有实体的所有可能查询。因此 Hibernate 不必在每次想要更新实体时都生成 SQL。

当它打开时,Hibernate 将始终在请求时生成 SQL 查询,而不是缓存它。所以它对你的数据库来说更轻,但对 Hibernate 来说它变得更重。

什么时候应该使用 Hibernate 动态更新?如果您有一个包含大量列的巨大表,则缓存所有实体的所有查询将比平时消耗更多的内存。因此,您可以打开动态更新以提高性能。此外,如果您正在调试,动态更新将为您提供更具可读性的查询,因为只有修改后的列才会出现在您的更新语句中。

您应该使用更新查询还是会话更新?更新查询的可读性较差且难以维护(例如,如果字段名称已更改,您必须更改所有查询,而会话更新不会受到影响)。

于 2013-01-31T10:37:39.570 回答