inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

jay님의 게시글

jay jay

@programmerjay

수강평 작성수
25
평균평점
5.0

게시글 34

질문&답변

MemberRepositoryTest를 돌리는 과정에서 아래와 같이 에러가 나타납니다.

네 감사합니다. 위와 같이 findUsername으로 작성을 하고 돌렸는데 위와 비슷한 에러를 만나서 해결을 계속하고 있지만 찾지못하였습니다..... 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.findByUsernameAndAgeGreaterThen(java.lang.String,int)! Reason: Failed to create query for method public abstract java.util.List study.datajpa.repository.MemberRepository.findByUsernameAndAgeGreaterThen(java.lang.String,int)! No property 'greaterThen' found for type 'int'! Traversed path: Member.age.; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List study.datajpa.repository.MemberRepository.findByUsernameAndAgeGreaterThen(java.lang.String,int)! No property 'greaterThen' found for type 'int'! Traversed path: Member.age. Member Class입니다. package study.datajpa.entity ; import lombok. * ; import javax.persistence. * ; import static javax.persistence.FetchType .* ; @Entity @Getter @Setter @NoArgsConstructor ( access = AccessLevel . PROTECTED ) @ToString ( of = { "id" , "username" , "age" }) public class Member { @Id @GeneratedValue @Column ( name = "member_id" ) private Long id ; private String username ; private int age ; @ManyToOne ( fetch = LAZY ) @JoinColumn ( name = "tema_id" ) private Team team ; public Member ( String username ) { this . username = username ; } public Member ( String username , int age ) { this . username = username ; this . age = age ; } public Member ( String username , int age , Team team ) { this . username = username ; this . age = age ; if ( team != null ) { changeTeam( team ) ; } } public void changeTeam ( Team team ) { this . team = team ; team .getMembers().add( this ) ; } } MemberRepository 입니다. package study.datajpa.repository ; import org.springframework.data.jpa.repository.JpaRepository ; import study.datajpa.entity.Member ; import java.util.List ; public interface MemberRepository extends JpaRepository Member , Long > { List Member > findByUsernameAndAgeGreaterThen ( String username , int age ) ; List Member > findHelloBy () ; } MemberRepositoryTest입니다. package study.datajpa.repository ; import org.assertj.core.api.Assertions ; import org.junit.jupiter.api. Test ; import org.springframework.beans.factory.annotation. Autowired ; import org.springframework.boot.test.context. SpringBootTest ; import org.springframework.test.annotation. Rollback ; import org.springframework.transaction.annotation. Transactional ; import study.datajpa.entity.Member ; import java.util.List ; import static org.assertj.core.api.Assertions .* ; import static org.junit.jupiter.api.Assertions .* ; @SpringBootTest @Transactional @Rollback ( false ) class MemberRepositoryTest { @Autowired MemberRepository memberRepository ; @Test public void testMember () { System . out .println( "memberRepository = " + memberRepository .getClass()) ; Member member = new Member( "memberA" ) ; Member savedMember = memberRepository .save( member ) ; Member findMember = memberRepository .findById( savedMember .getId()).get() ; assertThat ( findMember .getId()).isEqualTo( member .getId()) ; assertThat ( findMember .getUsername()).isEqualTo( member .getUsername()) ; assertThat ( findMember ).isEqualTo( member ) ; } @Test public void basicCRUD () { Member member1 = new Member( "member1" ) ; Member member2 = new Member( "member2" ) ; memberRepository .save( member1 ) ; memberRepository .save( member2 ) ; // 단건 조회 검증 Member findMember1 = memberRepository .findById( member1 .getId()).get() ; Member findMember2 = memberRepository .findById( member2 .getId()).get() ; assertThat ( findMember1 ).isEqualTo( member1 ) ; assertThat ( findMember2 ).isEqualTo( member2 ) ; findMember1 .setUsername( "member!!!!!!!" ) ; // 리스트 조회 검증 List Member > all = memberRepository .findAll() ; assertThat ( all .size()).isEqualTo( 2 ) ; // 카운트 검증 long count = memberRepository .count() ; assertThat ( count ).isEqualTo( 2 ) ; // 삭제 검증 memberRepository .delete( member1 ) ; memberRepository .delete( member2 ) ; long deleteCount = memberRepository .count() ; assertThat ( deleteCount ).isEqualTo( 0 ) ; } @Test public void findByUsernameAndAgeGreaterThen () { Member m1 = new Member( "AAA" , 10 ) ; Member m2 = new Member( "AAA" , 20 ) ; memberRepository .save( m1 ) ; memberRepository .save( m2 ) ; List Member > result = memberRepository .findByUsernameAndAgeGreaterThen( "AAA" , 15 ) ; assertThat ( result .get( 0 ).getUsername()).isEqualTo( "AAA" ) ; assertThat ( result .get( 0 ).getAge()).isEqualTo( 20 ) ; assertThat ( result .size()).isEqualTo( 1 ) ; } @Test public void findHelloBy () { List Member > helloBy = memberRepository .findHelloBy() ; } }

좋아요수
0
댓글수
2
조회수
1879

질문&답변

강의와 같이 insert한 movie가 보이지 않습니다.

강의를 계속 진행한 후에 아래와 같이 JpaMain.java 파일을 작성하였습니다. 에러 로그는 아래와 같습니다. Hibernate: call next value for hibernate_sequence java.lang.IllegalArgumentException: No query defined for that name [select MEMBER_ID, city, street, zipcode, USERNAME from MEMBER] at org.hibernate.internal.AbstractSharedSessionContract.buildQueryFromName(AbstractSharedSessionContract.java:828) at org.hibernate.internal.AbstractSharedSessionContract.createNamedQuery(AbstractSharedSessionContract.java:926) at org.hibernate.internal.AbstractSessionImpl.createNamedQuery(AbstractSessionImpl.java:23) at hellojpa.JpaMain.main(JpaMain.java:32) 4월 10, 2022 3:51:42 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/test]

좋아요수
0
댓글수
3
조회수
605

질문&답변

영상 9분 프록시 기초 부분에서

table들을 다 drop하고 19분 파트까지 다시 실행하니 진행이 되긴하였습니다. 하지만 진행할 때마다 아래와 같은 에러가 나와서 member table을 drop해야하는 상황이 생기게 됩니다.... member table을 매번 drop하고나면 진행이 되는데 어디서 문제가 되었는지 모르겠네요,,,,, member table을 매번 drop을 할 경우에 JpaMain을 실행할 때 아래와 같이 결과가 바르게 나옵니다. Baseentity입니다.

좋아요수
0
댓글수
2
조회수
435