분류 전체보기(77)
-
객체지향 쿼리 언어 소개
JPA는 복잡한 검색 조건을 사용해서 엔티티 객체를 조회할 수 있는 다양한 쿼리 기술을 지원한다. EntityManager.find() 메소드를 사용하면 식별자로 엔티티 하나를 조회할 수 있다. 이렇게 조회한 엔티티에 객체 그래프 탐색을 사용하면 연관된 엔티티들을 찾을 수 있다. 이 둘은 가장 단순한 검색 방법이다. 식별자로 조회 EntityManager.find() 객체 그래프 탐색 a.getB().getC() 이 기능만으로 애플리케이션을 개발하기는 어렵다. 예를 들어 나이가 24살 이상인 회원을 모두 검색하고 싶다면 좀 더 현실적이고 복잡한 검색 방법이 필요하다. 결국 데이터는 데이터베이스에 있으므로 SQL로 필요한 내용을 최대한 걸러서 조회해야 한다. 하지만 ORM을 사용하면 데이터베이스 테이블이 ..
2023.09.22 -
값 타입
값 타입은 3가지로 나눌 수 있다. 기본값 타입(자바 기본 타입, 래퍼 클래스, String) 임베디드 타입 컬렉션 값 타입 1. 기본값 타입 @Entity public class Member { @Id @GeneratedValue private Long id; private String name; private int age; ... } Member 엔티티에서 String, int가 값 타입이다. Member 엔티티는 id라는 식별자 값도 가지고 생명주기도 있지만 값 타입인 name, age 속성은 식별자 값도 없고 생명주기도 회원 엔티티에 의존한다. 따라서 회원 엔티티 인스턴스를 제거하면 name, age 값도 제거된다. 그리고 값 타입은 공유하면 안된다. 2. 임베디드 타입(복합 값 타입) 새로운 ..
2023.09.22 -
랭디 전화영어 무료체험 후기
학창시절 영어 과목이 우수한 편이었으나... 수능이 끝나고 직장생활을 하면서 영어를 쓸 일도 없고 하니.. 많이 까먹기도 했고, 한국인 종특 ... 리스닝만 되고 스피킹이 안된다... 그게 나야 두비둡 그래서 친구와 함께 전화영어를 도전해보기로 했다. 근데 생각보다 주변에 많은 친구들이 이미 전화영어를 하고있었다.. 나만 몰랐던것인가... 그래서 검색해보다가 알게된 "랭디" 라는 전화영어를 찾았는데, 무료로 한번 수업을 해준다고 해서 체험 신청을 했다. 집에서 하려고 하였으나, 친구와 함께 얘기도 하고싶어서 카페에서 해보기로 하였다. 비교적 구석진 자리에 앉아서 자리를 잡고, 홈페이지의 강의자료와 채팅을 띄워두고 전화가 오기만을 기다렸다.. 너무 떨려서 내 친구랑 전화가 안오길 바라고 있었다(?)ㅋㅋㅋㅋ..
2023.09.22 -
자바의 Stream Method
여러가지 자바의 스트림 메소드를 알아보도록 하겠다. 일단 User 엔티티를 하나 생성한다. public class User { private int id; private String name; private String email; public User(int id, String name, String email) { this.id = id; this.name = name; this.email = email; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name =..
2023.09.12 -
getOrDefault 함수
"java.util.Map" 인터페이스의 "getOrDefault(Object key, V defaultValue)" 메서드는 맵에서 지정된 키에 해당하는 값을 가져오는 메서드이다. 이 메서드는 키가 맵에 존재하면 해당 값을 반환하고, 키가 맵에 존재하지 않으면 지정된 기본값('defaultValue')을 반환한다. 메서드 시그니처는 다음과 같다. V getOrDefault(Object key, V defaultValue) key: 찾고자 하는 엔트리의 키 defaultValue: 키가 맵에 존재하지 않을 때 반환하는 기본값 다음은 예시이다. Map map = new HashMap(); map.put("apple", 5); map.put("banana", 3); int count = map.getOrDe..
2023.09.11 -
영속성 전이: CASCADE
특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶으면 영속성 전이 기능을 사용하면 된다. JPA는 CASCADE 옵션으로 영속성 전이를 제공한다. // 부모 엔티티 @Entity public class Parent { @Id @GeneratedValue private Long id; @OneToMany(mappedBy = "parent") private List children = new ArrayList(); ... } //자식 엔티티 @Entity public class Child { @Id @GeneratedValue private Long id; @ManyToOne private Parent parent; ... } 부모 엔티티가 여러가지 자식 엔티티를 가지고 있다...
2023.07.31