inflearn logo
Khóa học

Khóa học

Chia sẻ kiến thức

Bài viết của jay

jay jay

@programmerjay

Số lượng đánh giá đã viết
25
Xếp hạng trung bình
5.0

Bài viết 34

Hỏi & Đáp

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() ; } }

Lượt thích
0
Số bình luận
2
Lượt xem
1864

Hỏi & Đáp

강의와 같이 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]

Lượt thích
0
Số bình luận
3
Lượt xem
592

Hỏi & Đáp

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

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

Lượt thích
0
Số bình luận
2
Lượt xem
426