ComputerScience/JPA
-
[JPA] 4. 엔티티 매핑 - 1. 객체와 테이블 매핑 / 데이터베이스 스키마 자동 생성ComputerScience/JPA 2022. 6. 25. 22:40
객체와 테이블 매핑 엔티티 매핑에는 다음과 같은 매핑이 있습니다. 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne,@JoinColumn 우리는 이 중 객체와 테이블 매핑을 알아보도록 하겠습니다. @Entity @Entity가 붙은 클래스는 JPA가 관리하고 이를 엔티티라고 합니다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션 필수 주의 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용X 내가 디비에 저장하고 싶은 필드에는 저장할 필드에 final 사용 @Entity 속성 정리 속성: na..
-
[JPA] 3. 영속성 관리 - 플러시, 준영속ComputerScience/JPA 2022. 6. 19. 15:05
앞 장에서 영속성 컨텍스트에 대해 알아봤습니다. 이번 장에서는 영속성 컨텍스트에서 사용하는 플러시와 준영속 상태에 대해 알아보겠습니다. 플러시 플러시를 작동시키게 되면 영속성 컨텍스트의 변경내용을 데이터베이스에 반영하게 됩니다. 보통은 DB가 commit 될 때 flush가 발동하게 됩니다. 플러시의 특징은 다음과 같습니다. 영속성 컨텍스트를 비우지 않음 -> 1차 캐시를 비우는 게 아닙니다. 영속성 컨텍스트의 변경내용을 데이터베이스에 동기화 트랜잭션이라는 작업 단위가 중요 -> 커밋 직전에만 동기화 하면 됩니다. 플러시 작동 순서 변경감지 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시 하는 방법 영..
-
[JPA] 3. 영속성 관리 - 영속성 컨텍스트ComputerScience/JPA 2022. 6. 11. 17:02
영속성 컨텍스트 JPA에서 가장 중요한 2가지가 있습니다. 첫번째는 이전 장에서 설명했던 관계형 데이터베이스를 매핑하는 것이고 두번째는 영속성 컨텍스트입니다. 엔티티 매니저 팩토리와 엔티티 매니저 처음 생성된 엔티티 매니저 팩토리는 클라이언트의 요청에 따라 엔티티 매니저를 생성합니다. 그리고 엔티티 매니저는 DB Connection Pool에 있는 Connection을 이용해서 DB에 접근합니다. DB Connection Pool DB Connection 생성 자체가 리소스를 많이 소모하기 때문에 미리 Connection들을 생성해둔 뒤 DB 연결에 대한 요청이 올때마다 사용하기 위한 Pool 영속성 컨텍스트란? JPA를 이애하는데 가장 중요한 용어입니다. "엔티티를 영구 저장하는 환경"이란 뜻입니다. ..
-
[JPA] 2. JPA 시작ComputerScience/JPA 2022. 6. 6. 20:53
이제 프로젝트를 생성해보겠습니다. 사용도구 사용된 프로그래밍 도구(?)는 다음과 같습니다. H2 Database 1. http://www.h2database.com/ H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo www.h2database.com..
-
[JPA] 1. JPA 소개 - JPA 소개ComputerScience/JPA 2022. 6. 5. 20:42
이전 글에서는 JPA 이전의 SQL 주도 개발의 문제점에 대해 알아봤습니다. 반복적인 CRUD 개발, 패러다임의 불일치 등 많은 문제점으로부터 ORM 개발이 나오게 됐고 Java 진영의 표준이 JPA라는 것까지 알게 됐습니다. 이번 장에서는 JPA가 무엇인지 간단하게 알아보도록 하겠습니다. JPA? Java Persistence API의 줄임말 자바 진영의 ORM 기준 표준 ORM? 그렇다면 ORM은 무엇일까? Object-relational mapping(객체 관계 매핑) 객체는 객체대로 설계 관계형 데이터베이스는 관계형 데이터베이스대로 설계 ORM 프레임워크가 중간에서 매핑 대중적인 언어는 대부분 ORM이 존재 JPA는 애플리케이션과 JDBC 사이에서 동작한다. JPA는 사실 애플리케이션과 JDBC ..
-
[JPA] 1. JPA 소개 - SQL 중심적인 개발의 문제점ComputerScience/JPA 2022. 6. 2. 23:38
시작하기에 앞서 Java의 ORM 표준 기술인 JPA에 대해서 알아보도록 합니다. 해당 게시글은 Infrean의 김영한 개발자의 '자바 ORM 표준 JPA 프로그래밍'을 참고하여 작성됐습니다. SQL 중심적인 개발의 문제점 현재 시중의 프로그램 중 객체 지향 언어로 개발된 프로그램들이 정말 많습니다. Java, Scala 등의 객체 지향 언어 중 Java는 아직까지도 많은 개발자들에게 사랑받는 언어 중 하나입니다. 객체지향언어 객체지향언어란 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어 그리고 애플리케이션에서 데이터베이스 세계의 패권은 아직 RDB(관계형 데이터베이스)가 쥐고 있죠. NoSQL도 많이 뜨고 있지만 NoSQL은 대용량 데이터분석 등에 용이한 DBMS입..