일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- jpa
- java
- QueryDSL
- transaction
- http
- 그리디
- 스프링
- JPQL
- 인프런
- AOP
- 알고리즘
- springdatajpa
- spring
- Exception
- 스프링 핵심 원리
- 백준
- SpringBoot
- JDBC
- kotlin
- Spring Boot
- 김영한
- Greedy
- Servlet
- pointcut
- Thymeleaf
- Proxy
- 스프링 핵심 기능
- db
- Android
- 자바
- Today
- Total
목록인프런 (528)
개발자되기 프로젝트
1. 등록된 회원들의 이름을 조회 MemberRepository @Query("select m.userName from Member m") List findUserNameList(); Test @Test public void findUserNameList(){ Member member1 = new Member("aaa", 10); Member member2 = new Member("bbb", 20); memberRepository.save(member1); memberRepository.save(member2); List userNameList = memberRepository.findUserNameList(); for (String userName : userNameList) { System.out.p..
1. @Query SpringDataJPA를 활용하여 repository의 method에 바로 쿼리를 정의하자. 실무에서 많이 쓰임 기존 SpringDataJPA에서 제공하는 기능은 조건이 너무 길어지면 method이름이 길어졌다. @Query를 사용하면 method이름은 간략히, 쿼리는 여러 조건을 추가할 수 있다. public interface MemberRepository extends JpaRepository { public List findMemberByUserNameAndAgeGreaterThan(String userName, int age); @Query(name = "Member.findByUserName") List findByUserName(@Param("userName") String..
쿼리에 이름을 부여하고 호출하는 기능 쓸 일이 거의 없음 ㅋㅋㅋㅋ 1. Member Entity @NamedQuery에 쿼리 이름 및 쿼리 작성. 음..? 엔티티에 쿼리를..? @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 { 2. MemberJPARepository em.createNamedQuery 사용 publi..
1. Query Method의 기능 메소드 이름으로 쿼리 생성 NamedQuery @Query - 리파지토리 메소드에 쿼리 정의 파라미터 바인딩 반환 타입 페이징과 정렬 벌크성 수정 쿼리 @EntityGraph 2. 메소드 이름으로 쿼리 생성 메소드 이름을 분석해서 JPQL 쿼리 실행 이름과 나이를 기준으로 회원을 조회하려면? 먼저 JPA로 짜보자 public List findMemberByUserNameAndAgeGreaterThan(String userName, int age){ return em.createQuery("select m from Member m where m.userName = :userName and m.age > :age") .setParameter("userName", userN..
1. 공통 인터페이스 설정 JavaConfig 설정- 스프링 부트 사용시 생략 가능(JpaRepository가 있는 pacakge 지정) @Configuration @EnableJpaRepositories(basePackages = "jpabook.jpashop.repository") public class AppConfig {} 스프링 부트 사용시 @SpringBootApplication 위치를 지정(해당 패키지와 하위 패키지 인식) 만약 위치가 달라지면 @EnableJpaRepositories 필요 2. Spring Data JPA 동작 방식 Spring이 JpaRepository를 상속받은 interface의 구현체를 만들어서 주입. org.springframework.data.repository...
1. 순수 JPA기반 Repository @Repository public class TeamRepository { @PersistenceContext private EntityManager em; public Team save(Team team){ em.persist(team); return team; } public void delete(Team team){ em.remove(team); } public List findAll(){ return em.createQuery("select t from Team t", Team.class).getResultList(); } public Optional findById(Long id){ Team findTeam = em.find(Team.class, id);..
1. Entity Class Member와 Team은 다대일 연관관계 2. ERD 3. Member class xToOne은 기본적으로 fetch type이 EAGER이다. 항상 LAZY를 적용하자(지연로딩) package study.datajpa.entity; import lombok.*; import javax.persistence.*; @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "userName", "age"}) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; pr..
1. application.yml spring: datasource: url: jdbc:h2:tcp://localhost/~/datajpa username: sa driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: true logging.level: org.hibernate.SQL: debug 2. 엔티티를 만들자. @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String userName; protected Member() { } public Member(Str..