お世話になっております。Spring bootにおけるビルド失敗のもう1つのエラーについて質問させていただきます。
前回と同じステージで止まっており一部のユーザーの方に大変お世話になっております。
よろしければ、この問題についてもご意見を頂戴したく質問致します。
エラー内容
Error creating bean with name 'webSecurityConfig': Unsatisfied dependency expressed through field 'userDetailsService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'reservationUserDetailsService': Unsatisfied dependency expressed through field 'userRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract mrs.domain.model.User mrs.domain.repository.user.UserRepository.findOne(java.lang.String)! No property findOne found for type User!
エラーログより、
Failed to create query for method public abstract mrs.domain.model.User mrs.domain.repository.user.UserRepository.findOne(java.lang.String)! No property findOne found for type User!
とあるため、UserRepositoryクラスのfindOneメソッドの引数がうまく渡っていない?と漠然と認識しています。
それがわかったところで以降のアプローチがわかりません。
・findOneメソッドを定義しているUserRepositoryを修正?
・引数がうまく渡っていないためUserモデルを修正?
UserRepository
1package mrs.domain.repository.user; 2 3import org.springframework.data.jpa.repository.JpaRepository; 4import mrs.domain.model.User; 5 6public interface UserRepository extends JpaRepository<User, String> { 7 8 User findOne(String username); 9}
User
1package mrs.domain.model; 2 3import javax.persistence.*; 4 5@Entity 6@Table(name = "usr") 7public class User { 8 @Id 9 private String userId; 10 private String password; 11 private String firstName; 12 private String lastName; 13 @Enumerated(EnumType.STRING) 14 private RoleName roleName; 15 16 public String getUserId() { 17 return userId; 18 } 19 20 public void setUserId(String userId) { 21 this.userId = userId; 22 } 23 24 public String getPassword() { 25 return password; 26 } 27 28 public void setPassword(String password) { 29 this.password = password; 30 } 31 32 public String getFirstName() { 33 return firstName; 34 } 35 36 public void setFirstName(String firstName) { 37 this.firstName = firstName; 38 } 39 40 public String getLastName() { 41 return lastName; 42 } 43 44 public void setLastName(String lastName) { 45 this.lastName = lastName; 46 } 47 48 public RoleName getRoleName() { 49 return roleName; 50 } 51 52 public void setRoleName(RoleName roleName) { 53 this.roleName = roleName; 54 } 55 56}
ReservationUserDetailsService
1package mrs.domain.service.user; 2 3import mrs.domain.model.User; 4import mrs.domain.repository.user.UserRepository; 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.security.core.userdetails.UserDetails; 7import org.springframework.security.core.userdetails.UserDetailsService; 8import org.springframework.security.core.userdetails.UsernameNotFoundException; 9import org.springframework.stereotype.Service; 10 11@Service 12public class ReservationUserDetailsService implements UserDetailsService { 13 @Autowired 14 UserRepository userRepository; 15 16 @Override 17 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { 18 User user = userRepository.findOne(username); 19 if (user == null) { 20 throw new UsernameNotFoundException(username + " is not found."); 21 } 22 return new ReservationUserDetails(user); 23 } 24} 25
宜しくお願い致します。
11月25日
★githubリンク★
回答1件
あなたの回答
tips
プレビュー