Как использовать свойство объектов в качестве ключа для @CachePut?

public interface MyRespository extends CrudRepository<MyEntity, Long> {
    @CachePut(value = "mycache", key = "id")
    @Override
    public <S extends MyEntity> S save(S entity);
}

@Entity
public class MyEntity {
    @Id
    private Long id;

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
}

Результат:

org.springframework.expression.spel.SpelEvaluationException: EL1008E: (pos 0): не удается найти свойство или поле 'id ' для объекта типа 'org.springframework.cache.interceptor.CacheExpressionRootObject' - может быть, не публично?

1 ответ

Решение

Доступ к объекту по индексу с key = "#a0.id" работал, но я до сих пор не знаю, почему невозможно получить доступ к объекту по его имени.

Другие вопросы по тегам