У меня есть атрибут Model, для которого нужно установить @ReadOnlyProperty, чтобы он не сохранялся после первой вставки строки.
Предположим, что моя модель похожа на приведенную ниже
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(updatable = false, nullable = false)
@JsonIgnore
private Long id;
@Column(unique = true, nullable = false)
@ReadOnlyProperty
private String openId;
}
.UserRepository:
public interface UserRepository extends JpaRepository<User, Long> {
}
, затем я предоставляю 2 Restful API для POST и PUT.
Создать код операции пользователя так же просто, как показано ниже:
user.setOpenId(1);
userRepository.save(user)
Операция обновления пользователя почти такая же:
user.setOpenId(2);
user = userRepository.save(user);
Я удивлен, что атрибут openId пользователя будет изменен, после POST, а затем PUT возвращенный объект пользователя будет иметь измененное значение. (user.getOpenId() == 2)
Похоже, @ReadOnlyProperty не работает, я использую RELEASE-версию spring-boot-starter-data-jpa.Может кто-нибудь помочь объяснить?