EJB 实体:更新单个列的最佳方式
EJB entities: Best way to update a single column
使用 EJB 实体,我需要更新 100 多列中单行的单列 table。我通常 read/load 该行并进行必要的更新,但这似乎势不可挡,因为所有剩余的列都将被不必要地更新,更不用说性能损失了。
有没有办法 just 更新单列类似于传统的 JDBC 方式?
您可以执行更新查询:
update Foo f set f.someField = :someValue where f.id = :id
请注意,如果实体已经加载,则此更改不会反映在实体中,并且会绕过乐观锁定。
确保不要过早优化。如果简单地修改实体就足够快了,那么就这样做吧。
我宁愿担心拥有超过 100 个字段的实体。也许你应该把它分成几个实体。
使用JPA,首先可以查询需要更新的记录实体,修改该实体的属性。然后调用 EntityManager 来更新这个实体。因此,您只需更新一条要更新的记录。
使用 EJB 实体,我需要更新 100 多列中单行的单列 table。我通常 read/load 该行并进行必要的更新,但这似乎势不可挡,因为所有剩余的列都将被不必要地更新,更不用说性能损失了。 有没有办法 just 更新单列类似于传统的 JDBC 方式?
您可以执行更新查询:
update Foo f set f.someField = :someValue where f.id = :id
请注意,如果实体已经加载,则此更改不会反映在实体中,并且会绕过乐观锁定。 确保不要过早优化。如果简单地修改实体就足够快了,那么就这样做吧。
我宁愿担心拥有超过 100 个字段的实体。也许你应该把它分成几个实体。
使用JPA,首先可以查询需要更新的记录实体,修改该实体的属性。然后调用 EntityManager 来更新这个实体。因此,您只需更新一条要更新的记录。