#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 мы пишем классы/интерфейсы, начинающиеся с прописной буквы