Spring 数据 - 无法更新具有@ManyToOne 关系的实体

Spring Data - Can't update entity with @ManyToOne relations

我得到了一个简单的 SessionEntity:

public class SessionEntity {
...

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NonNull
    @ManyToOne
    @JoinColumn(name = "customer_id", nullable = false)
    CustomerEntity customerEntity;

...
}

CustomerEntity

public class CustomerEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NonNull
    private String territory;

    @NonNull
    private String code;

}

第一次交易后,我想使用以下方法用新的 CustomerEntity 数据更新 SessionEntity:

@Query("update SessionEntity session "
    + "set session.customerEntity =:customerEntity "
    + "where "
    + "session.id =:sessionId")
Option<SessionEntity> updateCustomerForSession(@Param("sessionId") String sessionId, @Param("customerEntity") CustomerEntity customerEntity);

但没有任何反应,在 Postgres 中,我得到的仍然是相同的 customer_id。此外,上面一级的方法是 public@Transactional (SessionRepository - java class)。 这个解决方案有什么问题?

有两件事必须解决。首先,正如 Igor 提到的,我必须添加 @ Modifying,其次,方法 updateCustomerForSession 必须 return int 或 void.