jpa10 Spring Boot JPA에서 엔티티를 읽기 전용으로 설정하는 방법 ( @Immutable과 readOnly 트랜잭션 활용하기 ) Hibernate의 @Immutable 사용Hibernate를 사용한다면, 엔티티 클래스에 @Immutable 어노테이션을 추가할 수 있습니다. @Immutable 어노테이션은 해당 엔티티가 수정되지 않는다는 것을 Hibernate에게 알려주며, 업데이트나 삭제 작업을 무시하거나 예외를 발생시킵니다. import javax.persistence.Entity;import org.hibernate.annotations.Immutable;@Entity@Immutablepublic class MyEntity { // 필드, getter 등} 읽기 전용 트랜잭션 사용서비스 계층에서 @Transactional(readOnly = true)를 사용하면, 해당 트랜잭션 내에서는 엔티티 변경 사항이 flush.. 개발중/Java Persistence API (JPA) 2025. 2. 24. [JPA] Entity 가 Update 되는 과정에 대해서 아니 JPA 에서 UPDATE 되는 과정 JPA(Java Persistence API)에서 업데이트 과정은 다음과 같이 이루어집니다: 1. 엔티티 조회 먼저 업데이트할 엔티티를 데이터베이스에서 조회합니다. 이는 주로 `EntityManager`를 사용하여 해당 엔티티를 조회하는 쿼리를 실행하는 방식으로 이루어집니다. 2. 엔티티 수정 조회한 엔티티를 수정합니다. 이때 JPA는 영속성 컨텍스트(Persistence Context)에서 관리하는 엔티티를 수정합니다. 수정은 엔티티의 필드를 변경하거나 메소드를 호출하여 이루어질 수 있습니다. 3. 트랜잭션 커밋 업데이트된 엔티티를 데이터베이스에 반영하기 위해 트랜잭션을 커밋합니다. 이때 JPA는 변경된 엔티티를 감지하고 해당 엔티티에 대한 UPDATE SQL 문을 .. 개발중/Java Persistence API (JPA) 2023. 6. 27. JPA ( Java Persistence API ) JPA ( Java Persistence API ) ▶ 개념 • 자바 진영에서 ORM( Object - Relational Mapping ) 기술 표준으로 사용되는 인터페이스 모음 • 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크 • JPA 를 구현한 대표적인 오픈소스로는 Hibernate가 있다. JPA 구현체 ※ ORM( Object - Relational Mapping ) • 객체와 관계형 데이터베이스의 데이터를 자동으로 Mapping( 연결 ) 해주는 것을 의미한다. • 객체지향 프로그래밍 - 클래스 사용 / 관계형 데이터베이스 - 테이블 사용 객체 모델과 관계형 모델간의 존재하는 불일치를 ORM을 통해 객체간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치 해결한다. ▶ JPA 동작.. 개발중/Java Persistence API (JPA) 2023. 1. 10. [ 사이드 프로젝트 (스프링 부트 / JPA / vue) ] 따자 드디어 배포하다. http://ec2-13-125-129-135.ap-northeast-2.compute.amazonaws.com/ Vue Element Admin ec2-13-125-129-135.ap-northeast-2.compute.amazonaws.com 작년 이맘 때 쯤이었나.. 매일 사이드 프로젝트를 해야 한다는 생각은 있었지만 막상 시작은 못하고 있었다. 어쩌다 두 명이서 시작한 프로젝트가 우당탕탕 하며 진행하다 거의 막바지에는 따로 하기로 합의를 봤다. 그래서 온전히 내 결과물은 아니지만, 끝까지 해낸 내가 뿌듯해죽겠다. 개발도 개발이지만 서버에 배포하는게 발목을 잡힐 것이라는 생각을 늘 가지고 있었는데, 역시나 회사에서 하는 서버 배포는 선배들이 다 설정해두고 나는 잘 차려놓은 밥상을 떠먹기만 하면 되니.. PROJECT/JPA 사이드 프로젝트 기록 2021. 12. 19. [ JPA ] Save 후 Id 구하기 삽입을 목적으로 vo를 save 를 이용하여 삽입했을 때 생성된 id 를 구하는 법은 아주 간단하다. repository.save( vo ).getId(); save 를 진행한 repository 가 반환 하는 것은 방금 내가 저장한 vo 에 대한 저장된 결과 이기 때문이다. 개발중/Java Persistence API (JPA) 2021. 12. 5. Ddaja - Word 개발 Word 사이드 프로젝트 "따 자" 에서 사용자들이 단어를 외울 수 있는 기능을 개발 중이다. word 는 내가 따자를 만들고자 할 때 가장 만들고자 했던 페이지이다. 내가 자격증 취득 하려고 하는 시기에 가장 힘들었던, '낮선 용어 외우기' 그 일을 조금이나마 쉽게 할 수 있도록 개발 중이다. Word 를 바라보는 시선. Word 페이지는 관리자가 사용하는 Admin Word , 그리고 word 기능을 이용할 User Word. Admin Word 자격증별로 Word 카테고리를 확인 할 수 있다 게시판 형식 Word 카테고리를 추가, 삭제, 수정이 가능해야 한다. Word 카테고리 추가 Word 카테고리 입력 받아야 하는 속성들. 카테고리명 단어들 저장 액셀 파일을 업로드 하여 여러 단어들을 저장할 수.. PROJECT/JPA 사이드 프로젝트 기록 2021. 10. 10. [JPA] 연관 관계 정리 JPA 를 하면서 테이블간 연관관계 맺기 JPA 에서는 연관 관계를 잘못 맺으면 무한 루프가 .. 발생한다. 고생 좀 했어서 정성스럽게 기록해야지 연관관계 이해하는 예시 "자동차 - 바퀴" 연관관계의 주인은 바퀴가 가지고 자동차는 연관관게를 당하는 입장이다. 아래 두개의 Table 간의 Column 의 연관관계를 맺어보자. TABLE : MEMBER COLUMN : M_ID TABLE : TEAM COLUMN : T_ID TEAM 더보기 ✔ Team - Team 은 여러명의 Member를 가질 수 있다. ㄴ 즉, Team 은 연관관계의 주인이 될 수 없다. 위의 예시에서 자동차 같은 역할을 한다. - Member List 를 담는 변수를 보면 Members 인데 Member 의 Setter 를 보면 se.. 개발중/Java Persistence API (JPA) 2021. 8. 15. JPA - 프로젝션 프로젝션 ? SELECT 절에 조회할 대상을 지정하는 것을 프로젝션이라 하고 { SELECT {프로젝션 대상} FROM } 으로 대상을 선택한다. 🔴 프로젝션 대상 엔티티 엠비디드 타입 스칼라 숫자, 문자 등 기본 데이터 타입 🔴 엔티티 프로젝션 SELECT m FROM Member m SELECT m.team FROM Member m 둘 다 엔티티를 프로젝션 대상으로 사용한다. 쉽게 생각하면 원하는 객체를 바로바로 조회한다는 것이다. 컬럼을 하나하나 나열에서 조회해야 하는 SQL 과 차이가 있다. 참고로 이렇게 조회한 엔티티는 영속성 컨텍스트에서 관리 된다. 🔴 임베디드 타입 프로젝션 JPQL 에서 임베디드 타입은 엔티티와 거의 비슷하게 사용된다. 임베디드 타입은 조회의 시작점이 될 수 없다는 제약이 .. 개발중/Java Persistence API (JPA) 2021. 7. 1. JPA 공부하기 🔻 JPA 공부하기 ✅ JPA - Java Persistence API - ORM을 사용하기 위한 인터페이스를 모아둔 것 - 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 - 자바 진영의 ORM 기술 표준 ✅ ORM - Object-relational mapping(객체 관계 매핑) - 객체는 객체대로 설계 - 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 - 객체를 ORM 프레임워크에 저장하면, ORM 프레임워크가 SQL을 생성해서 객체를 DB에 관리 - 대중적인 언어에는 대부분 ORM 기술이 존재 ✅ JPA를 사용하는 이유 - SQL 중심적인 개발에서 객체 중심으로 개발 - 개발 생산성 향상 - 유지보수 편의 - 패러다임의 불일치.. 개발중/Spring 2021. 6. 23. 자바 퍼시스턴스 API, JPA 자바 퍼시스턴스 API, JPA 자바 퍼시스턴스 API 또는 자바 지속성 API ( Java Persistence API, JPA )는 자바 플랫폼 SE와 자바 플랫폼 EE를 사용하는 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 자바 API이다. 기존에 EJB 에서 제공되던 엔터티 빈을 대체하는 기술이다. 자바 퍼시스턴스 API는 JSR 220에서 정의된 EJB3.0 스펙의 일부로 정의가 되어 있지만 EJB 컨테이너에 의존하지 않으며 EJB, 웹 모듈 및 Java SE 클라이언트에서 모두 사용이 가능하다. 또한 사용자가 원하는 퍼시스턴스 프로바이더 구현체를 선택해서 사용할 수 있다. JPA 란 ? JPA는 여러 ORM 전문가가 참여한 EJB3.0 스펙 작업에서 기존 EJB ORM이던 Entity.. 개발중/Spring 2021. 1. 5. 이전 1 다음