-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
findProjectionsByUsername 생성오류
22.02.24 16:31 작성 조회수 252
0
Error creating bean with name 'memberRepository' defined in study.datajpa.repository.MemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.List study.datajpa.repository.MemberRepository.findProjectionsByUsername(java.lang.String)! Reason: Failed to create query for method public abstract java.util.List study.datajpa.repository.MemberRepository.findProjectionsByUsername(java.lang.String)! null; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List study.datajpa.repository.MemberRepository.findProjectionsByUsername(java.lang.String)! null
이렇게 repository에서 저 네임메서드가 생성이 안되어서 오류가 뜨는데 해결이 안됩니다..
답변을 작성해보세요.
1
0
leemsdong2
질문자2022.02.24
public interface MemberRepository extends JpaRepository<Member,Long>, MemberRepositoryCustom{
@Query("select m from Member m where m.username=:name and m.age =:age")
List<Member> findUser(@Param("name") String username, @Param("age") int age);
@Query("select m.username from Member m")
List<String> findUsernameList();
@Query("select new study.datajpa.dto.MemberDto(m.id, m.username, t.name) from Member m join m.team t")
List<MemberDto> findMemberDto();
@Query("select m from Member m where m.username in :names")
List<Member> findByNames(@Param("names") List<String> names);
// @Query("select m from Member m",
// countQuery = "select count(m.username) from Member m")
Page<Member> findByAge(int age, Pageable pageable);
@Modifying(clearAutomatically = true)
@Query("update Member m set m.age=m.age+1 where m.age>=:age")
int bulkAgePlus(@Param("age") int age);
@Query("select m from Member m join fetch m.team")
List<Member> findMemberFetchJoin();
@EntityGraph(attributePaths = {"team"})
List<Member> findByAge(@Param("age") int age);
List<UsernameOnly> findProjectionsByUsername(String username);
}
leemsdong2
질문자2022.02.24
@Entity
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@ToString(of = {"id","username","team"})
public class Member extends BaseEntity{
@Id @GeneratedValue
@Column(name = "member_id")
private Long id;
private String username;
private int age;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "team_id")
private Team team;
public Member(String username) {
this.username = username;
}
public Member(String username, int i, Team team) {
this.username = username;
this.age = i;
if(team!=null){
changeTeam(team);
}
}
public Member(String username, int age) {
this(username, age, null);
}
public void changeTeam(Team team){
this.team = team;
team.getMembers().add(this);
}
}
David
2022.02.24
혹시 Spring Data Jpa 버전이 최신버전이실까요?
만약 최신버전이시라면 아래 글 답변을 참고하셔서 Spring Boot 버전 또는 Spring Data Jpa 버전을 낮춰보시고 다시 시도해주시겠어요?
답변 2