java.lang.Исключение NullPointerException: Не удается вызвать «.repository.updatePassword.updtPassword, потому что clientJsonWebTokenValidation.Заглавное слово равно нулю

#spring #spring-boot #hibernate #spring-mvc #spring-data-jpa

#весна #пружинный ботинок #зимовать #весна-mvc #весна-данные-jpa

Вопрос:

Я написал класс обслуживания следующим образом —

 @Service public class clientJsonWebTokenValidation {    @Autowired  private static updatePassword upPassword;  

позже в программе я вызвал метод JpaRepository , указав необходимые параметры следующим образом в этой программе, где возникает исключение .

 upPassword.updtPassword(strClientUsername,strNewPasswordToReset);   

И реализация JpaRepository выглядит следующим образом

 import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository;  import com.erecruitment.app.model.user; @Repository public interface updatePassword extends JpaRepositorylt;user, Longgt;{    public String nativeQuery="UPDATE user SET password='?' WHERE username='?'";    @Query(value=nativeQuery,nativeQuery=true)  boolean updtPassword(String strUsernameOfWhichPasswordToUpdate,String   strPasswordToBeUpdated);  }  

Также пользователь pojo выглядит следующим образом —

 import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table;  import com.fasterxml.jackson.annotation.JsonProperty; @Entity @Table(name="user") public class user {    @Id  @GeneratedValue(strategy = GenerationType.IDENTITY)  private long id;    @JsonProperty("username")  @Column(name="username")  private String username;    @JsonProperty("password")  @Column(name="password")  private String password;    public user() {  super();  // TODO Auto-generated constructor stub  }     public user(String username, String password) {  super();    this.username = username;  this.password = password;  }    public long getId() {  return id;  }    public void setId(long id) {  this.id = id;  }    public String getUsername() {  return username;  }    public void setUsername(String username) {  this.username = username;  }    public String getPassword() {  return password;  }    public void setPassword(String password) {  this.password = password;  }   }  

И исключением является java.lang.Исключение NullPointerException: Не удается вызвать «com.er.app.репозиторий.updatePassword.updtPassword(строка, строка)», потому что «com.er.app.service.clientJsonWebTokenValidation.Заглавное слово» равно нулю

Как устранить это исключение ? Любое альтернативное решение также прекрасно .Заранее спасибо.

Ответ №1:

Внедрение зависимостей не работает со статическими полями.

 @Autowired private static updatePassword upPassword;  

Удалите ключевое слово static:

 @Autowired private updatePassword upPassword;  

Несколько заметок:

  • @Репозиторий не требуется для интерфейсов, расширяющих JpaRepository.
  • В Java мы пишем классы/интерфейсы, начинающиеся с прописной буквы