일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- WEB #HTTP #HTTPS #SSL #통신개념
- React #생명주기
- REST#SOAP#API
- MQ#MOM#메시지지향미들웨어#Kafka#ActiveMQ#rabbitMQ
- java
- ssh #pem
- EKS란
- 이펙티스자바
- 클라우드#클라우드서비스#클라우드개념#IaaS#Paas#Saas
- 모니터링 #k8s #prometheus #metricbeat #elasticsearch #logstash
- k8s
- MQM #웹서버
- memory #리눅스 #자원관리
- JDK1.8
- non-locking
- abstract
- interface
- cors #Authorization
- ssl #개인키 #공개키
- Vuejs#JavaScript#프레임워크#개요#개념
- MySQL 5.7 #MySQL 8.0 #차이점 #업그레이드
- X.25
- 오라클#튜닝
- SSH #공개키인증
- React#기초#JS#JavaScrip#개념
- Oracle #ANSI #SQL #JOIN
- JPA #생명주기
- Mysql #RDBMS #설치 #기동 #설정
- React
- docker #k8s #배포하기
- Today
- Total
목록API/JPA (5)
개발노트
참조 : https://girawhale.tistory.com/122 엔티티 생명주기(Entity LifeCycle) 비영속(new/transient) 순수한 객체 상태이며, 영속성 컨텍스트와 관련이 없는 상태 Member member = new Member(); 영속(managed) EntityManager를 통해 엔티티를 영속성 컨텍스트에 저장되어 영속성 컨텍스트가 관리하는 상태 em.persist(member); // 객체 저장 준영속(detached) 영속성 컨텍스트에 저장되었다가 분리된(detached) 상태 em.detach(member); // 특정 엔티티를 분리 em.close(); // 영속성 컨텍스트 닫기 em.clear(); // 영속성 컨텍스트 초기화 추가 설명 삭제(removed)..
JPA를 사용하는데 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 것이다. 따라서 매필 어노테이션을 숙지하고 사용해야 한다. JPA는 다양한 매핑 어노테이션을 지원하는데 크게 4가지로 분류할 수 있다. 오른쪽에는 대표 어노테이션들을 적어보았다. 객체와 테이블 매핑 : @Entity, @Table 기본 키 매핑 : @Id 필드와 컬럼 매핑 : @Column 연관관계 매핑 : @ManyToOne, @Joincolumn 객체와 테이블 매핑, 기본 키 매핑, 필드와 컬럼 매핑에 대해 알아보고 연관관계 매핑은 다음 포스팅에서 이야기해보도록 하겠다. @Entity - @Entity 어노테이션은 데이타베이스의 테이블과 1:1로 매칭되는 객체 단위이며 Entity 객체의 인스턴스 하나가 테이블에서 하나의 레코드 ..
플러시란? - 플러시(flush())는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영한다. 플러시를 실행하면 구체적으로 다음과 같은 일이 일어난다. 변경 감지가 동작해서 영속성 컨텍스트에 있는 모든 엔티티를 스냅샷과 비교해서 수정된 엔티티를 찾는다. 수정된 엔티티는 수정 쿼리를 만들어 쓰기 지연 SQL 저장소에 등록한다. 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송한다(등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시하는 방법은 3가지이다. em.clush() 를 직접 호출한다. 트랜잭션 커밋 시 플러시가 자동 호출된다. JPQL 쿼리 실행 시 플러시가 자동 호출된다. * 직접 호출 - 엔티티 매니저의 flush() 메소드를 직접 호출해서 영속성 컨텍스트를 강제로 플러시한다. 테스트나 다..
영속성 컨텍스트(Persistence Context)란? -JPA를 이해하는 데 가장 중요한 용어는 영속성 컨텍스트(persistence context)다. 우리말로 번역하자면 '엔티티를 영구 저장하는 환경' 이라는 뜻이다. - 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. em.persist(member); - 지금까지는 이 코드를 단순히 회원 엔티티를 저장한다고 표현했다. 정확히 이야기하면 persist() 메소드는 엔티티 매니저를 사용해서 회원 엔티티를 영속성 컨텍스트에 저장한다. - 위 개념은 논리적인 개념에 가깝고 눈에 보이지도 않는다. 영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나 만들어진다. 이는 엔티티 매니저를 통해서 영속성 ..
ORM 이란? - ORM(Object-relational mapping : 객체 관계 매핑)이란 - 객체는 객체대로 설계하고, 관계형 데이터베이스(RDB)는 관계형 데이터베이스대로 설계한다. - ORM 프레임워크가 중간에서 매핑해준다. - 대중적인 언어에는 대부분 ORM 기술이 존재한다. - ORM은 객체와 RDB 두 기둥 위에 있는 기술이다. - 자세히 설명하자면 ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다. 예를 들어 ORM 프레임워크를 사용하면 객체를 데이터베이스에 저장할 때 INSERT SQL을 직접 작성하는 것이 아니라 객체를 마치 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 된다. 그러면 ORM 프레임워크가 적절한 INSERT SQL을 ..