분류 전체보기

@Test public void returnType() { Member m1 = new Member("AAA", 10); Member m2 = new Member("AAA", 20); memberRepository.save(m1); memberRepository.save(m2); assertThatThrownBy(() -> memberRepository.findOptionalByUsername("AAA")).isInstanceOf(NonUniqueResultException.class); } asserThatThrouwBy를 사용하여 예외를 확인 할 수 있음
@Test public void returnType() { Member m1 = new Member("AAA", 10); Member m2 = new Member("AAA", 20); memberRepository.save(m1); memberRepository.save(m2); Optional findMember = memberRepository.findOptionalByUsername("AAA"); System.out.println("findMember = " + findMember); } ✔ JPA에서는 NonUniqueResultException이 나오지만 Spring은 JPA만 repository기술로 사용하는 것이 아니기때문에 IncorrectResultSizeDataAccessExceptio..
java8 이후: Optional을 사용할 수 있다. Null처리에 대해 if문을 굳이 쓸 필요가 없어진다. Stream API: 반복문의 사용없이 컬랙션의 처리를 할 수 있게 도와준다. 람다표현식, 동작 파라미터 LocalDateTime
@Test public void returnType() { Member m1 = new Member("AAA", 10); Member m2 = new Member("BBB", 20); memberRepository.save(m1); memberRepository.save(m2); List findMember = memberRepository.findListByUsername("asdf"); System.out.println("findMember = " + findMember); } } 존재하지 않는 데이터를 조회했을때 컬랙션을 결과값으로 받았을때에는 empty로 결과를 받는다. findMember.size()=0이다. null을 받지 않는다. 왜 이게 중요하냐면 if (findMember == null)..
@Query("select m from Member m where m.username in :names") List findByUsername(@Param("names") List names); @Query("select m from Member m where m.username in :names") List findByUsername(@Param("names") Collection names); Collection으로 파라미터를 받으면 하위의 다양한 collection들을 받을 수 있다. @Test public void findNames() { Member m1 = new Member("AAA", 10); Member m2 = new Member("BBB", 20); memberRepository.sa..
package stduy.datajpa.entity; import lombok.*; import javax.persistence.*; @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "username", "age"}) @NamedQuery( name="Member.findByUsername", query="select m from Member m where m.username = :username" ) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String..
package stduy.datajpa.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import stduy.datajpa.entity.Member; import java.util.List; public interface MemberRepository extends JpaRepository { List findByUsernameAndAgeGreaterThan(String username, int age); List findHe..
@Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "userName", "age"}) @NamedQuery( name="Member.findByUsername", query="select m from Member m where m.username = :username" ) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; private int age; 엔티티에 @NamedQuery를 작성해두면 repository에서 함수를 쓰듯 가져다..
키보드발
'분류 전체보기' 카테고리의 글 목록 (12 Page)