본문 바로가기

Spring/JPA

JPA 설정 persistence.xml 파일로 JPA 환경 설정 및 관리 sky.spring.domain.Board 1. 영속성 유닛 이름 // Java 소스 EntityManagerFactory factory = Persistence.createEntityManagerFactory("{영속성 유닛 이름}"); EntityManager manager = factory.createEntityManager(); persistence.xml 파일의 루트는 는 영속성 유닛에 해당하는 엘리먼트를 가짐(영속성 유닛은 연동하려는 데이터베이스 당 하나씩 설정) 영속성 유닛을 설정하면 어플리케이션에서는 영속성 유닛 설정을 로딩해서 EntityManagerFa.. 더보기
스프링 JPA 쿼리가 두번 발생하는 경우 해결하기 1. 상황 테스트 코드 로그를 보면 같은 쿼리가 두번 나타나는 현상 발생 2. 해결 방법 - 로그에서 value값 확인을 위해 추가한 기존 설정 - 기존 org.hibernate.SQL을 show_sql 로 변경 - 쿼리가 한 번만 찍히는 것을 확인 // 3. 원인 더보기
스프링 JPA, 로그에서 쿼리 값(파라미터) 보기 기존 로그를 보면 value가 '?' 로 보임 properties에 간단한 설정이면 value를 볼 수 있음 logging.level.org.hibernate.SQL = debug logging.level.org.hibernate.type.descriptor.sql = trace 설정 후 로그를 확인해보면 아래와 같이 value를 확인할 수 있음 더보기
📝 트랜잭션(Transacction)이란? 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계 특징 원자성(Atomicity): 트랜잭션은 All or Noting의 실행만 가능(일부 실행 불가) 일관성(Consistency): 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관된 데이터베이스 상태가 됨 독립성/고립성(Isolation): 트랜잭션 작업 수행 중에는 다른 트랜잭션에 영향을 주어서도 안되고, 간섭을 받아서도 안됨. 예를들어 다수의 트랜잭션이 동시에 수행중인 상황에서 하나의 트랜잭션이 완료될 때까지 현재 실행중인 트랜잭션의 중간 수행결과를 다른 트랜잭션에서 참조 불가 영구성/지속성(Durability): 트랜잭션이 실행을 성공적으로 끝내면 그 결과를 어떠한 경우라도 보장 받음 트랜잭션을 사용한 폴더 생성 예시 public List.. 더보기
📝 ORM, JPA, Spring Data JPA 정리 ORM(Object Relational Mapping) 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체 모델과 관계형 모델 간에 불일치가 존재한다. 데이터베이스 데이터 - object 필드 / 객체를 통해 간접적으로 데이터베이스의 데이터를 다룬다. JPA(Java Persistence API) orm 기술 표준으로 사용되는 인터페이스의 모음 java 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스로 jpa를 구현한 것으로는 Hibernate, OpenJPA 등이 있다. 반복적인 CRUD sql을 처리해주고 객체 중심의 개발을 할 수 있기 때문에 사용하면 좋다. S.. 더보기
📝 JPA 가 무엇인가요? 1. JAP (Java Persistence API, 자바 ¹영속성 ²API) 자바로 만든 객체와 데이터베이스 테이블을 ³ORM 기술을 이용하여 매핑하고, 사용하는 방식을 정의한 ⁴인터페이스 cf) Spring Data JPA: JPA 사용 편이를 위해 만들어진 모듈로, JPA를 한 단계 추상화시킨 Repository라는 인터페이스 사용 1) 영속성(Persistence): 지속적인 것, 영원한 것을 뜻하는 단어로 자바로 만든 객체를 DB에 지속하는 것 2) API(Application Programming Interface):어플리케이션(소프트웨어) 간 서로 통신할 수 있게하는 약속 3) ORM(Object Relational Mapping): 애플리케이션 클래스와 RDB(Relational DataB.. 더보기
인텔리제이(Intellij) JPA 설정 지금 사용하는 DB 설정 알고 쓰기 위한 기록 의존성 # h2 데이터베이스 runtimeOnly 'com.h2database:h2' # MySQL runtimeOnly 'com.mysql:mysql-connector-j' application.properties 파일에서 db관련 설정 # DataBase spring.jpa.database=mysql spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.open-in-view=false spring.jpa.properties.hibernate.format_sql=true # MySQL DataBase spring.datasource.driver-class-name=com.mysq.. 더보기
Spring JPA - 리포지토리 인스턴스 생성 1. XML구성 2. 자바 구성 3. 독립 실행형 사용 더보기