Null key returned for cache operation

Не понимаю почему не отрабатывает кеширование.

Поставил cach над методом сохранения нового пользователя в БД h2. Пользователь не должен сохраняться если уже был сохранен с таким же полем #name

@Override
    @Cacheable(cacheNames="users", key="#name")
    public User create(User user) {
        return repository.save(user);
    }

@EnableCaching подключен.

аналогичный cach на получение отрабатывает

@Override
    @Cacheable("users")
    public User get(Long id) {
        log.info("getting user by id: {}", id);
        return repository.findById(id)
                .orElseThrow(() -> new EntityNotFoundException("User not found by id " + id));
    }

@Entity
@Table(name = "users")
@Data
@NoArgsConstructor
@ToString
public class User implements Serializable {

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

    @Column(name = "name")
    private String name;

    @Column(name = "email")
    private String email;

    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }
}

полный лог ошибки

java.lang.IllegalArgumentException: Null key returned for cache operation (maybe you are using named params on classes without debug info?) 

Builder[public com.example.demo.entity.User com.example.demo.service.UserServiceImpl.create(com.example.demo.entity.User)] caches=[users] | key='#name' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='' | unless='' | sync='false'\n\tat org.springframework.cache.interceptor.CacheAspectSupport.generateKey(CacheAspectSupport.java:595)\n\tat org.springframework.cache.interceptor.CacheAspectSupport.findCachedItem(CacheAspectSupport.java:535)\n\tat org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:402)


Ответы (0 шт):