EJB实体:更新单个列的最佳方式

时间:2015-03-01 15:11:53

标签: java ejb

使用EJB实体,我需要更新100+列表中单行的单个列。我通常读取/加载行并进行必要的更新,但这似乎是压倒性的,因为所有剩余的列将不必要地更新,更不用说性能损失了。 有没有办法只是更新单列,类似于传统的JDBC方式?

2 个答案:

答案 0 :(得分:0)

您可以执行更新查询:

update Foo f set f.someField = :someValue where f.id = :id

请注意,如果实体已经加载,则此更改不会反映在实体中,并且它将绕过乐观锁定。 确保不要过早优化。如果只是修改实体足够快,那就这样做。

我宁愿担心拥有超过100个字段的实体。也许你应该把它分成几个实体。

答案 1 :(得分:0)

使用JPA,首先可以查询需要更新的记录实体,并修改该实体的属性。然后调用EntityManager来更新此实体。因此,您只需更新一条要更新的记录。