JPA

JPA

JPA - 데이터베이스 스키마 자동 생성

🌱 오늘의 주제 : JPA - 데이터베이스 스키마 자동 생성 🌱 JPA - 데이터베이스 스키마 자동 생성 JPA는 데이터베이스 스키마를 자동으로 생성하는 기능을 지원합니다. 클래스의 매핑 정보를 분석하여 어떤 테이블이 어떤 칼럼을 사용하는지 알 수 있고 데이터베이스 방언(dialect)에 따라 해당 데이터베이스에 맞는 스키마를 생성할 수 있습니다. 데이터베이스 방언이란? 데이터 타입이나 함수명, 페이징 처리 등 각 데이터베이스가 제공하는 고유 기능을 JPA에서는 방언(dialect)이라고 부릅니다. 개발자가 특정 데이터베이스에 종속되는 기능을 많이 사용하면 나중에 데이터베이스를 교체하기 어려운데, 이러한 문제를 해결하기위해 아래와 같이 다양한 방언클래스를 제공합니다. H2: org.hibernate.di..

JPA

JPA - 엔티티 매핑

🌱 오늘의 주제 : JPA - 엔티티 매핑 🌱 @Entity 🌱 @Table 🌱 매핑 어노테이션 정리 🌱 @Column 🌱 @Enumerated 🌱 @Temporal 🌱 @Lob 🌱 @Transient 🌱 기본 키 매핑 어노테이션

JPA

JPA - 영속성 관리

🌱 오늘의 주제 : 영속성 관리 🌱엔티티 매니저 팩토리와 엔티티 매니저 엔티티 메니저는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유하면 안 된다. 🌱 영속성 컨텍스트란? JPA를 이해하는데 가장 중요한 용어는 영속성 컨텍스트다. 엔티티를 영구 저장하는 환경이라는 뜻이다. persist() 메소드는 엔티티 매니저를 사용해서 회원 엔티티를 영속성 컨텍스트에 저장한다. EntityManager.persist(entity); 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 🌱 엔티티의 생명주기 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) : 영속성 컨텍스트에 관리되는 상태 준영속(detached) : 영속성 컨텍스트에..

JPA

JPA - JPA 소개

🌱 오늘의 주제 : JPA 소개 🌱 JPA란? Java Persistence API JPA는 자바 진영의 ORM 기술 표준이다. JPA는 지루하고 반복적인 CRUD SQL을 알아서 처리해줄 뿐만 아니라 객체 모델링과 관계형 데이터베이스 사이의 차이점도 해결준다. CRUD SQL을 작성할 필요가 없고, 조회된 결과를 객체로 매핑하는 작업도 대부분 자동으로 처리해주므로 데이터 저장 계층에 작성해야 할 코드가 1/3로 줄어든다. 🌱 JPA 동작 - 저장 🌱 JPA 동작 - 조회 🌱 JPA를 사용하는 이유 - SQL 중심적인 개발에서 객체 중심으로 개발 - 생산성 - 유지보수 - 패러다임의 불일치 해결 - 성능 - 데이터 접근 추상화와 벤더 독립성 - 표준 🌱 생산성 - JPA와 CRUD 저장: jpa.pers..

JPA

JPA - 메소드 종류

🌱 오늘의 주제 : JPA - 메소드 종류 🌱 조회 메소드 종류 🌱 조회 쿼리 메소드에 붙일 수 있는 키워드들 🌱 Native 쿼리로 조회 @Query(value="select * from post where subject= :subject", nativeQuery=true) List findBySubject(@Param("subject") String subject); 🌱 데이터 Insert , update, delete 데이터 Insert Entity 객체 정의 @ToString @Getter @Builder(toBuilder = true) // 필드 세팅, toBuilder=true: 기존 객체에 일부 필드값만 변경 가능 @NoArgsConstructor // 파라미터 없는 생성자 @AllArgsC..

JPA

JPA - Optional 클래스

🌱 오늘의 주제 : Optional 클래스 🌱 java.util.Optional 클래스 Optional 클래스는 Integer나 Double 클래스처럼 'T'타입의 객체를 포장해 주는 래퍼 클래스(Wrapper class)입니다. 따라서 Optional 인스턴스는 모든 타입의 참조 변수를 저장할 수 있습니다. 이러한 Optional 객체를 사용하면 예상치 못한 NullPointerException 예외를 제공되는 메소드로 간단히 회피할 수 있습니다. 즉, 복잡한 조건문 없이도 널(null) 값으로 인해 발생하는 예외를 처리할 수 있게 됩니다. 🌱 Optional 객체의 생성 of() 메소드나 ofNullable() 메소드를 사용하여 Optional 객체를 생성할 수 있습니다. of() 메소드는 null이..

JPA

JPA - @Transactional 이란?

🌱 오늘의 주제 : @Transactional 이란? 🌱 @Transactional 이란? 데이터베이스를 다룰 때 트랜잭션을 적용하면 데이터 추가, 갱신, 삭제 등으로 이루어진 작업을 처리하던 중 오류가 발생했을 때 모든 작업들을 원상태로 되돌릴 수 있다. 모든 작업들이 성공해야만 최종적으로 데이터베이스에 반영하도록 한다. 🌱 스프링에서 @Transactional 을 이용하여 트랜잭션 처리를 하는 방법 DB와 관련된, 트랜잭션이 필요한 서비스 클래스 혹은 메서드에 @Transactional 어노테이션을 달아주면된다. 클래스, 메서드 모두에 @Transactional 어노테이션을 붙이면 메서드 레벨의 @Transactional 선언이 우선 적용된다. @Transactional이 붙은 메서드는 메서드가 포함..

요가하는 개발자
'JPA' 카테고리의 글 목록