목록전체 (129)
지나공 : 지식을 나누는 공간
정렬이란? 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 정렬이 되면 이진 탐색이 가능해진다. 선택정렬, 삽입정렬, 퀵정렬, 계수 정렬에 대하여 선택 정렬 [소개] 가장 원시적인 방법으로 매번 '가장 작은 것을 '선택'하는 정렬 [방법] 데이터가 무작위로 여러 개 있을 때, 이 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그 다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복한다. [그림] [코드] #include using namespace std; int n = 5; //정렬할 개수 int arr[10] = { 7, 4, 5, 9. 8, 2, 1 }; int main(void) { for (int i = 0; i < n; i++) { int min_ind..
JPQL 타입 표현 문자 : 'HI', 'He''s' -> ' '안에 (')을 넣어야 할 때는 작은 따옴표 두 개 사용해서 표현 숫자 : 10L(Long), 10D(Double), 10F(Float) Boolean : true, false enum : 패키지명을 모두 포함해서 적어야 함. public enum MemberType{ ADMIN, USER; } public class Member{ @Enumerated(EnumType.STRING) private MemberType type; //기본이 EnumType.ORDINAL이므로 항상 STRING으로 변경해주어야 함 } String query = "select m.username from Member m " + "where m.type = jpql...
오늘 알아볼 내용은, 조인의 종류 조인쿼리 실행하기 ON절 조회 대상 필터링 (조인을 하되 조건을 걸고 부합하는 것만 조인) 연관관계 없는 엔티티 조인 서브쿼리 (중요) JPA 서브쿼리의 한계 조인의 종류 내부 조인 SELECT m FROM Member m [INNER] JOIN m.team t (inner는 생략 가능) 외부 조인 SELECT m FROM Member m LEFT [OUTER] JOIN m.team t (outer는 생략 가능) 세타 조인 ( 연관관계가 전혀 없는것을 비교해보는조인) select count(m) from Member , Team t where m.username = t.name 조인 쿼리 실행하기 Team과 Member가 연관관계를 가진 상태라고 하면 아래와 같이 조인 ..
이번에 다룰 내용은, 프로젝션과 영속성컨텍스트 관리여부 여러 필드의 값을 조회하는 방법 세 가지 페이징 프로젝션이란? SELECT 절에 조회할 대상을 지정하는 것 프로젝션 대상 : 엔티티, 임베디드 타입, 스칼라 타입(숫자, 문자 등 기본 데이터 타입) 예시 SELECT m FROM Member m -> 엔티티를 조회하니까 엔티티 프로젝션 SELECT m.team FROM Member m -> 엔티티 프로젝션 (멤버에 연관된 팀 엔티티를 가져오니까) SELECT m.address FROM Member m -> 임베디드 타입 프로젝션 SELECT m.username, m.age FROM Member m -> 스칼라 타입 프로젝션 DISTINCT로 중복 제거 영속성 컨텍스트에 관리되는가? em.flush()..
이건 개인적으로 잘 몰랐던 부분만 기록할 예정. JPQL 문법의 특징 select m from Member as m where m.age > 18 엔티티와 속성은 대소문자를 구분한다. JPQL 키워드는 대소문자 구분을 하지 않는다. select, from where 등은 대소문자 다 가능 엔티티 이름을 사용한다. 테이블 이름을 사용하지 않는다. 별칭은 필수이고 as는 생략 가능하다. hibernate는 별칭 안 써도 가능은 한데 본래 문법은 별칭 필수다. 클래스 이름이 똑같다면...클래스 이름을 바꾸는 게 안 헷갈리고 낫습니다... @Entity(name = "MM") public class Member{ @Id @GeneratedValue private Long id; } 위의 코드에서 엔티티 이름은 ..
여기서 알아볼 내용은, 값 타입 컬렉션 사용하는 예제 : 저장, 조회, 수정 등 값 타입 컬렉션 주의사항 실무에서의 사용법 팁 값 타입 컬렉션은 언제 쓰는지 JPA 타입 정리 문제상황 Member처럼 컬렉션을 가지면 1대 다 관계를 유지하지만 DB 테이블은 특성 상 한 객체가 컬렉션을 가지는 것을 구현하기 어렵다. 그래서 Member에 Favorite Food가 있다면 이걸 별도의 테이블로 보관해야 한다. 그래야 관리할 수 있다. 일단 매핑을 해보자. 값 타입 매핑은 @ElementCollection으로 해야 하고, 테이블명 정하는 건 CollectionTable에서 name을 통해 할 수 있다. MEMBER_ID를 가지고 JOIN하겠다는 의미이다. 값 타입 컬렉션 값 타입을 하나 이상 저장할 때 사용하..
www.hdmedi.co.kr/upp-self-test 어프 성격 시상식 - 회복탄력성 테스트 **2020 어프워드** 회복탄력성 테스트로 알아보는 나의 성격? www.hdmedi.co.kr 제 결과는 24시간이 모자라 상이네요ㅎㅎ 귀여운 결과 만족스럽습니다 ㅋㅋㅋㅋㅋ
(JPA7에 이어지는 내용) 이번에 알아볼 내용은, 값 타입의 공유 참조와 그 부작용 공유 참조 시 부작용 피하기 객체 타입의 한계 불변 객체 값 타입의 비교 값 타입 공유 참조 임베디드 타입과 같은 값 타입을 여러 엔티티에서 공유하면 위험하다. (부작용 발생) 부작용 주의! Address address = new Address("city","street","10000"); //member1 생성 Member member1 = new Member(); member1.setAddress(address); em.persist(member1); //member2 생성 Member member2 = new Member(); member2.setAddress(address); em.persist(member2);..
이번에 알아볼 내용은, 기본값 타입과 값 타입의 분류 임베디드 타입(복합 값 타입) - > 중요 임베디드 타입의 활용 임베디드 타입의 중복 해결 임베디드 타입과 null JPA의 데이터 타입 분류 [엔티티 타입] Entity로 정의하는 객체 내부 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티의 이름, 나이를 변경해도 id100번이면 id를 보고 이 엔티티를 인식할 수 있다. [값 타입] int, Integer, String 같은 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없이 값만 있으므로 변경되면 추적 불가능 값 타입의 분류 임베디드 타입 : X좌표, Y좌표를 한 번에 사용하고자 묶어서 '위치'로 사용하고 싶을 때 사용. 컬렉션 값 타입 : 임베디드 타입이나 값 타입을 자..
이번 포스팅에서 공부할 내용은! ->영속성 전이 (CASCADE) : 정의, 주의점, 종류 ->고아 객체 : 정의, 주의 -> (영속성 전이 + 고아 객체)와 생명주기 영속성 전이란? (CASCADE) 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶은 경우에 사용합니다. 예를 들어 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장하거나, 부모 엔티티를 삭제할 때 관련된 자식엔티티도 함께 삭제하고 싶을 때 사용합니다. 영속성 전이 : 저장 (PERSIST) 아래의 예시를 봅시다. 현재 Parent와 Child는 1:N 연관관계 (@OneToMany, @ManyToOne 사용)를 가진 상태입니다. public class JpaMain(){ public static void m..