鉴于我使用的是 Hanami Model 版本 0.6.1,我希望存储库仅更新实体的更改属性。
例如:
user_instance1 = UserRepository.find(1)
user_instance1.name = 'John'
user_instance2 = UserRepository.find(1)
user_instance2.email = 'john@email.com'
UserRepository.update(user_instance1)
#expected: UPDATE USER SET NAME = 'John' WHERE ID = 1
UserRepository.update(user_instance2)
#expected: UPDATE USER SET EMAIL = 'john@email.com' WHERE ID = 1
但实际情况是第二个命令覆盖了所有字段,包括那些未更改的字段。
我知道我可以使用Hanami::Entity::DirtyTracking
来获取所有更改的属性,但我不知道如何使用这些属性部分更新实体。
有没有办法做到这一点?