Класс моей модели:
@Data
public class Beer {
public Beer(int i, String string, float d) {
this.beerId = i;
this.beerName = string;
this.price = d;
}
public Beer() {
}
private int beerId;
private String beerName;
private float price;
}
И интерфейс службы
public interface IBeerService {
@Secured("ROLE_ADMIN")
@PreAuthorize("#beer.price > 0.0f")
Beer add(Beer beer);
@Secured("ROLE_USER")
@RolesAllowed("ROLE_USER")
List<Beer> getAll();
}
Интерфейс реализован, как показано ниже.
@Service
public class BeerService implements IBeerService {
private List<Beer> beerRepository = new ArrayList<>();
@Override
public Beer add(Beer beerToAdd) {
if(!beerRepository.contains(beerToAdd)) {
beerToAdd.setBeerId(this.beerRepository.size()+1);
this.beerRepository.add(beerToAdd);
}
return beerToAdd;
}
@Override
public List<Beer> getAll() {
return beerRepository;
}
}
В контроллереЯ могу видеть объект, который не является нулевым, в отладчике.Я получаю ошибку как
org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'price' cannot be found on null
at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:213) ~[spring-expression-5.1.9.RELEASE.jar:5.1.9.RELEASE]
at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:104) ~[spring-expression-5.1.9.RELEASE.jar:5.1.9.RELEASE]