분류 전체보기692 [Java] equals, hashCode 를 같이 구현하는 이유 이번글은 "Java에서 equals 와 hashCode를 왜 같이 구현할까?" 라는 의문에 대한 스스로의 답을 정리하는 글 입니다! 1. equals 만 재정의 할 경우 우선 설명에서 사용할 Item class를 살펴보자. public class Item { private String name; public Item(String name) { this.name = name; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Item item = (Item) o; return Objects.equals(name, item.. BackEnd/Java 2022. 5. 8. [JPA] 나머지 기능들 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 상세히 기록하고 얕은 부분들은 가볍게 포스팅하겠습니다. 이번 시간에 배우는 나머지 기능들을 실무에서 자주 사용되지는 않는다. 다만 알아두면 필요한 순간에 가끔 사용할 수 있을 것 이다. Specifications은 JPA Criteria와 관련된 기술 이다. 문제는 실무에서는 JPA Criteria를 거의 안쓴다! 대신에 QueryDSL를 사용하기 때문이다. 또한 Query By Example 도 실무에서 직접 사용하기는 애매한 부분이 있는 기술들이다. 따라서 해당 강의 영상 부분에 대한 정리는 생략하도록 하겠습니다 ㅎㅎ 1. Projections " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 회원의 이름.. BackEnd/JPA 2022. 5. 7. [JPA] 스프링 데이터 JPA 분석 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 상세히 기록하고 얕은 부분들은 가볍게 포스팅하겠습니다. 1. 스프링 데이터 JPA 구현체 분석 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번시간에는 Spring Data JPA가 어떻게 동작하는지 내부적인 구현체를 분석해보자! SimpleJpaRepository가 핵심 구현체 이다! @Repository @Transactional(readOnly = true) public class SimpleJpaRepository ... { @Transactional public S save(S entity) { if (entityInformation.isNew(entity)) { em.persist(entity.. BackEnd/JPA 2022. 5. 6. [JPA] 확장 기능 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 상세히 기록하고 얕은 부분들은 가볍게 포스팅하겠습니다. 1. 사용자 정의 리포지토리 구현 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 시간에는 실무에서 매우 중요한 내용이다. Spring Data JPA Repository는 인터페이스만 정의하고 구현체는 스프링이 자동 생성하게 된다. 문제는! Spring Data JPA가 제공하는 인터페이스에서 일부를 수정하려면 나머지 인터페이스 들도 모두 직접 구현해야 하기 때문에 현실적이지 못하다. 또한 다른 기술들, 예를 들어 MyBatis, QueryDsl 과 같은 기능도 함께 사용하고 싶다면? 다양한 이유로 인터페이스의 메서드를 직접 구현하고 싶다면 어떻.. BackEnd/JPA 2022. 5. 6. [TIL] 일일 회고 2022/05/04 요즘 한 일 1. Spring Data JPA 수강 요즘 코드스쿼드가 1주일 방학기간이라 그동안 듣지 못하고 있었던 Spring Data JPA 강의를 수강하기 시작했다. 어느덧 한 65%정도 듣게된 것 같다. 강의를 들으면서 정리를 하는 스타일이기 때문에 다음과 같이 정리를 하게 되었다. https://blogshine.tistory.com/387 HTML 삽입 미리보" data-og-host="blogshine.tistory.com" data-og-source-url="https://blogshine.tistory.com/387" data-og-url="https://blogshine.tistory.com/387" data-og-image="https://scrap.kakaocdn.net/dn/b2.. CODE SQUAD/회고록 2022. 5. 4. [JPA] 쿼리 메소드 기능 - 4 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 상세히 기록하고 얕은 부분들은 가볍게 포스팅하겠습니다. 9. 벌크성 수정 쿼리 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 단건의 Entity에 대한 수정이 아닌, 예를 들어 "모든 직원의 연봉을 10% 인상하라"와 같은 수정을 해야할 때 벌크성 수정 쿼리가 필요하다! 우선 순수 JPA를 사용하는 코드부터 살펴보자. @Repository public class MemberJpaRepository { @PersistenceContext private EntityManager em; public int bulkAgePlus(int age) { return em.createQuery("update Member.. BackEnd/JPA 2022. 5. 4. [JPA] 쿼리 메소드 기능 - 3 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 상세히 기록하고 얕은 부분들은 가볍게 포스팅하겠습니다. 7. 순수 JPA 페이징과 정렬 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 시간에는 순수하게 JPA를 사용해 페이징 처리를 해보고, 다음번에 Spring Data JPA를 통해 페이징 처리를 하자. 다음 조건에 맞도록 페이징 처리를 해보자. 검색 조건: 나이가 10살 정렬 조건: 이름으로 내림차순 페이징 조건: 첫 번째 페이지, 페이지당 보여줄 데이터는 3건 우선 Repository 코드는 다음과 같다. @Repository public class MemberJpaRepository { @PersistenceContext private Ent.. BackEnd/JPA 2022. 5. 4. [JPA] 쿼리 메소드 기능 - 2 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 상세히 기록하고 얕은 부분들은 가볍게 포스팅하겠습니다. 4. @Query, 값, DTO 조회하기 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이전시간에는 Entity를 조회하는 방식에 대하여 알아보았다. 이번시간에는 값을 찾아오는 법을 살펴보자. 1) 단순 값 조회하기 예를 들어 사용자의 이름 목록을 받아오고 싶다면 어떻게 해야할까? 이전과 동일하게 @Query를 사용하면 된다. public interface MemberRepository extends JpaRepository { @Query("select m.username from Member m") List findUsernameList(); } .. BackEnd/JPA 2022. 5. 4. [JPA] 쿼리 메소드 기능 - 1 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 상세히 기록하고 얕은 부분들은 가볍게 포스팅하겠습니다. Spring Data JPA는 공통적인 기능이 아닌, 도메인에 특화된 기능을 지원하기 위해 쿼리 메소드를 지원합니다! 쿼리 메소드 기능 3가지 - 메소드 이름으로 쿼리 생성 - 메소드 이름으로 JPA NamedQuery 호출 - @Query 어노테이션을 사용해서 repository interface에 쿼리 직접 정의 1. 메소드 이름으로 쿼리 생성 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 1-1. 순수 JPA 리포지토리 (MemberJpaRepository) 우선 직접 JPQL로 구현한 코드는 다음과 같다. 특정 username과 age 를 초과.. BackEnd/JPA 2022. 5. 3. [JPA] 공통 인터페이스 기능 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 상세히 기록하고 얕은 부분들은 가볍게 포스팅하겠습니다. 이번 시간에는 우선 순수한 JPA기반의 repository를 만들어 본 후, 이를 점차 Spring Data JPA를 사용하도록 변경할 것 이다. 1. 순수 JPA 기반 리포지토리 만들기 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 Team Repository의 코드는 다음과 같다. @Repository public class TeamRepository { @PersistenceContext private EntityManager em; public Team save(Team team) { em.persist(team); return team;.. BackEnd/JPA 2022. 5. 3. [JPA] 예제 도메인 모델 내가 공부한 것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼 겸 상세히 기록하고 얕은 부분들은 가볍게 포스팅하겠습니다. 1. 예제 도메인 모델과 동작확인 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 앞으로 활용할 간단한 도메인 entity를 하나 만들어보자. 다음과 같다. 위 다이어그램을 통해 만들어지는 Entity는 다음과 같다. Member : Team = N : 1 의 연관관계를 가지고 있다. 1. Member 코드 @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "username", "age"}) public class Member { @Id @Gen.. BackEnd/JPA 2022. 5. 2. [백준][C++] 10026번: 적록색약 <217> 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 사실 BFS를 2번 돌면되는 간단한 문제이다... 1) 일단 이반적인 BFS를 1번 돈다 2) R을 G로 변경한 후 (R과 G를 동일시 하기 위해) 3) 다시 BFS를 1번 돈다 (적녹생맥 전용) 나의 코드 " data-ke-type="html"> HTML 삽입 미리보기할 수 .. Algorithm/백준 2022. 5. 2. 이전 1 ··· 23 24 25 26 27 28 29 ··· 58 다음