jpa

·Server
JPA로 테이블과 엔티티를 매핑할 때, @Id와 @Column 어노테이션을 활용하여 테이블의 PK를 매핑시킬 수 있다. public class CustomerEntity { @Id @Column(name = "customer_id") private Long customer_id;} 하지만 식별자로 사용될 값을 일일히 수동으로 넣어줘야 하는 불편함이 있는데, 이는 @GeneratedValue로 해결할 수 있다. @GeneratedValue식별자 값을 자동 생성 시켜줄 수 있다. @GeneratedValue에는 4가지 옵션이 존재한다.@GenerationType. AUTOhibernate.dialect에 설정된 DB 방언 종류에 따라, 하이버네이트가 자동으로 전략을 선택하게끔 위임한다. 데이..
·Database
ANSI SQLSQL(Structured Query Language)란 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어이다. DBMS Vendor(벤더, 공급업체)란 MS-SQL, Oracle, MySQL, PostgreSQL 등 DBMS을 개발하고 판매하는 기업을 말한다. 각 DBMS Vendor에서는 자신만의 기능을 추가한 SQL이 있다.  그림에서 볼 수 있듯이, ANSI SQL이 모든 DBMS에서 공통으로 사용가능한 핵심 표준 SQL이다.ANSI : 미국 표준 협회 ANSI SQL 특징표준 SQL문이기 때문에 특정 DBMS의 종류에 제약을 받지 않는다.가독성이 일반 Query보다 좋다. 마치 대한민국의 서울에서 사용하는 표준어가 있고, 충청, 강원, 제주, 경상 등 여러 지방에..
·Server
영속성 컨텍스트 #1편 보러가기 오늘은 1편에 이어서 영속성 컨텍스트 2편을 포스팅해보려 한다. 영속성 컨텍스트 특징1차 캐시동일성(identity) 보장트랜잭션을 지원하는 쓰기 지연(transactional write-behind)변경 감지 (Dirty Checking)지연 로딩 (Lazy Loading) 영속성 컨텍스트는 식별자 값으로 엔티티를 구분한다.따라서 영속 상태는 식별자 값(@Id로 테이블의 기본키와 매핑한 값)이 반드시 있어야 한다! 영속성 컨텍스트에 엔티티를 저장하고 트랜잭션을 commit 하는 순간에 DB에 반영하는데, 이것을 플러시(flush)라고 한다.   엔티티 조회영속성 컨텍스트 내부에는 1차 캐시를 가지고 있다.영속 상태 엔티티는 모두 이곳에 저장된다.// 객체를 생성한 상태(..
·Server
JPA를 통해 회원의 id(기본키)를 생성하고, username과 password를 저장하는 간단한 예제이다. 코드를 파헤쳐보도록 하자! JPA가 생소하다면 -> JPA 알아보기   Customer Entity@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)@AllArgsConstructor@Builder@Entity@Table(name = "customer")public class CustomerEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "customer_id") private Long customer_id; @Column(..
·Server
오류 원인MySQL에서 drop table로 테이블 삭제 시, 다른 테이블에 외래키가 걸려있다고 삭제가 되지 않는 경우이다. 하지만 drop table 쿼리 명령을 하지 않았는데 왜 테이블이 삭제된다고 하지?? 라는 의문이 있었는데... 원인을 찾았다. application.propertiesspring.jpa.hibernate.ddl-auto=create  이 부분이 create로 설정되어 있었다.create는 애플리케이션을 실행할 때 마다 모든 테이블을 제거하고 다시 생성하기 때문에, 이 부분에서 오류가 났다. 몇가지 옵션이 있는데, 어떤 것으로 설정할지는 개발자의 자유다.표로 옵션을 알아보자.create애플리케이션 실행 시 모든 테이블을 제거하고 다시 생성합니다.create-drop애플리케이션 실행..
·Server
JPA(Java Persistence API)JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 인터페이스라는 말은?실제적으로 구현된 것 X구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크JPA를 구현한 대표적인 오픈소스: Hibernate  JPA는 애플리케이션과 JDBC(Java Database Connectivity) 사이에서 동작한다.  스프링에서 흔히 사용하는 것으로 알고있는 JPA는 JPA를 이용하는 Spring Data JPA 프레임워크이다.JPARepository란 Spring Data JPA에서 제공하는 인터페이스 중 하나로, JPA를 사용하여 데이터베이스를 조작하기 위한 메서드를 제공한다.  ORM(Objec..
YugyeongChoi
'jpa' 태그의 글 목록