2016-06-01 2 views
1
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; } 
} 

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

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

+0

Try '# entity.id' .. –

+0

' org.springframework.expression.spel.SpelEvaluationException: EL1007E: (поз 0): Свойство или поле 'Идентификатор' не может быть найден на null' – membersound

+0

Видимо вы сохраняющегося null entity –

ответ

1

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

+0

Вы можете использовать #id вместо – user12384512

Смежные вопросы