나를 기록하다
article thumbnail
[JPA] Getter and Setter
Java/JPA 2023. 4. 2. 21:09

getter and setter getter는 클래스의 멤버 변수의 값을 반환하는 메소드입니다. 즉, 객체가 가지고 있는 값을 외부에서 읽을 수 있게 해줍니다. 반면에, setter는 멤버 변수의 값을 설정하는 메소드입니다. 이 메소드를 사용하여 외부에서 객체 내부의 값을 변경할 수 있습니다. 이러한 getter와 setter를 통해 클래스 내부의 멤버 변수를 안전하게 관리하고, 캡슐화를 구현할 수 있습니다. 또한, 이를 이용하여 객체의 상태를 제어하고 유효성 검사 등을 수행할 수 있습니다. 따라서 getter와 setter는 자바 프로그래밍에서 매우 중요한 역할을 수행하며, 객체지향 프로그래밍에서 캡슐화와 정보 은닉을 구현하는 데 필수적입니다. 예를 들어, 학생 클래스를 만든다고 가정해봅시다. 이 클래..

article thumbnail
[JPA] 객체와 테이블, 조인 전략
Java/JPA 2023. 4. 2. 19:49

객체와 테이블 JPA(Java Persistence API)는 자바 어플리케이션에서 관계형 데이터베이스를 사용하기 위한 인터페이스를 제공합니다. 여기서 객체와 테이블 간의 매핑이 중요한데요, 객체는 자바 프로그램에서 사용되는 인스턴스를, 테이블은 데이터베이스에서 데이터를 저장하는 구조를 나타냅니다. 이 매핑은 JPA를 통해 객체와 테이블 사이에 어떻게 데이터를 주고받을 것인지를 정의합니다. 객체와 테이블 간의 관계를 이해하기 위해 간단한 예시를 들겠습니다. 예를 들어, 도서관에서 책과 작가 정보를 관리하는 프로그램을 만든다고 가정해봅시다. 먼저, 자바 프로그램에서 사용할 객체를 만듭니다. @Entity public class Book { @Id @GeneratedValue private Long id; ..

article thumbnail
[JPA] Cannot drop "TEAM" because "FK4U1NPO283VGQFK8LYXCLIHGNL" depends on it; SQL statement:
Error/JPA 2023. 4. 2. 13:52

김영한님의 자바 ORM 표준 JPA 프로그래밍 기초 강의 중 일대다 [1:N]을 듣는데 강의와는 다르게 나의 H2 DB에는 MEMBER에 TEAM_ID 컬럼이 등장하지 않았다. 외래키가 제대로 추가되지 않을 것으로 생각되었고, drop table을 시도했지만 불가능했다. drop table이 불가능했던 원인을 살펴보니 Cannot drop "TEAM" because "FK4U1NPO283VGQFK8LYXCLIHGNL" depends on it; SQL statement: drop table Team if exists [90107-200] 90107/90107 (도움말) org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "TEAM" because "FK4U1NP..

article thumbnail
[JPA] Flush
Java/JPA 2023. 3. 19. 12:01

Flush란? JPA에서 "flush"는 엔티티 매니저의 컨텍스트에 대한 변경 사항을 기존의 데이터베이스와 동기화하는 프로세스 를 말합니다. 엔티티 매니저에서 관리되는 엔티티에 대한 작업을 수행할 때(예: persist, remove, update 등), 변경 사항은 즉시 데이터베이스에 유지되지 않습니다. 대신, 변경 사항은 엔티티 매니저의 컨텍스트에 보관되어 플러시 작업이 트리거될 때까지 유지 됩니다. 그 시점에서 변경 사항이 데이터베이스로 전송되어 커밋 됩니다. 플러시 작업을 수동으로 트리거하려는 경우 몇 가지 시나리오가 있습니다. 관리되는 엔티티에 대한 변경 사항이 즉시 데이터베이스에 유지되도록 보장하기 위해서입니다. 플러시 작업 이후에 실행되는 모든 SQL 쿼리에서 데이터베이스에서 최신 데이터를 ..

article thumbnail
[JPA] JPQL의 기초
Java/JPA 2023. 3. 16. 12:06

1. JPQL이란? JPQL은 Java Persistence API (JPA)의 쿼리 언어 중 하나이며, 객체 지향적인 방식으로 데이터베이스를 다루기 위한 언어이다. JPQL은 엔티티 객체를 대상으로 쿼리를 작성하며, SQL과 유사한 구문을 사용한다. 그러나 JPQL은 객체 지향적인 개념에 기반을 두기 때문에, 테이블과 컬럼 이름 대신에 엔티티 클래스와 필드 이름을 사용하고, SQL에서처럼 JOIN 조건을 명시할 필요가 없다. JPQL을 사용하면 객체 지향적인 개념으로 데이터를 다룰 수 있으며, JPA에서 제공하는 다양한 기능을 활용할 수 있다. 예를 들어, 상속 관계가 있는 엔티티를 조회할 때는 JPQL의 상속 관계를 지원하는 기능을 사용할 수 있다. JPQL은 EntityManager 인터페이스를 사..

article thumbnail
[JPA] JPA 기초설정과 H2 DB 연동
Java/JPA 2023. 3. 16. 11:30

1. 라이브러리 추가 - pom.xml 4.0.0 jpa-basic ex1-hello-jpa 1.0.0 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 2.1.214 2. JPA 설정하기 - persistence.xml JPA 설정 파일 /META-INF/persistence.xml 위치 persistence-unit name으로 이름 지정 javax.persistence로 시작 : JPA 표준 속성 hibernate로 시작 : 하이버네이트 전용 속성 3. persistence.xml 4. 데이터베이스 방언 JPA는 특정 데이터베이스에 종속되지 않음 각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다름 방언 : SQL ..

profile on loading

Loading...