반응형

JPA는 ORM, 객체와 테이블을 매핑하는 프레임워크를 말한다.

객체와 테이블을 정확하게 매핑하기 위해 다음과 같은 어노테이션들을 사용한다.

  • 객체와 테이블
    • @Entity - 테이블과 매핑할 클래스에 @Entity 어노테이션을 추가하는 것으로 해당 클래스가 데이터베이스와 매핑할 객체임을 알려줌.
      Entity의 중요한 3가지 원칙
      1. 기본 생성자를 꼭 가지고 있을 것
      2. final class, interface, enum, inner 클래스가 아닌 기본 클래스
      3. 저장할 필드에 final을 사용하지 말 
    • @Table - Entity와 매핑할 테이블의 이름으로 직접 지정
      @Table(schema = "Schema Name",  name="Table Name") 에서 처럼 schema 명칭과 table name으로 구성되어지며, schema 명은 생략가능하다.
      스키마 매핑과 테이블 매핑 외에 DDL 유니크 제약 조건 추가 및 Catalog 매핑을 추가할 수 있다.
  • 프라이머리 키 매핑
    • @Id - 프라이머리 키는 기본 키라고도 하며, 관계형 데이터베이스에서 각 레코드의 식별자로 이용하기에 적합한 후보 키 가운데, 설계자가 일반적으로 이용되어야 한다고 정해 놓은 것을 말한다. JPA에서는 가능한 프라이머리(기본)키를 1개만 지정할 것을 권장한다. 이를테면 MariaDB의 AUTO_INCREMENT와 같이 자동 증가하게 할 수 있고, 아니면 직접 기본 키를 지정할 수도 있다.
  • 필드와 컬럼 매핑
    • @GeneratedValue - 프라이머리(기본)키를 생성할 때 직접 할당과 자동 생성으로 나뉜다.
      @GeneratedValue(strategy = GenerationType.IDENTITY) 
      JPA에서 자동 생성에는 3가지 전략이 있다.
      1. IDENTITY : 프라이머리(기본)키 생성을 데이터베이스에 위임
      2. SEQUENCE : 데이터베이스 시퀀스를 이용해서 기본 키를 할당
      3. TABLE : 키 생성 테이블을 이
    • @Column - 필드 매핑. JPA에서 @Column을 명시하지 않으면 해당 필드의 이름으로 매핑한다.
      테이블의 컬럼명과 클래스의 필드명이 서로 다를 경우 @Column의 name속성을 이용해서 이러한 문제를 해결할 수 있으며, DDL 생성 기능으로 nullable은 null 제약 조건, length는 길이 제약 조건 등을 사용할 수 있다.
      @Column(name = "member_id", nullable = true, length = 20) 
    • @Enumerated - ENUM 타입 매핑
      @Enumerated 에는 2가지 타입이 있음.
      1. EnumType.ORDINAL
      2. EnumType.STRING
      ORDINAL은 Enum에 정의된 순서대로 JPA가 이용하며, 만약 순서가 변경된다면 가능한 STRING 타입을 이용하는 것이 좋다. STRING 타입은 데이터베이스에 문자로 저장된다.
  • 연관관계
    • @OneToOne - 일대일 매핑
    • @OneToMany - 일대다 매핑
    • @ManyToOne - 다대일 매핑
    • @ManyToMany - 다대다 매핑

 

반응형
반응형

resources 폴더 아래의 application.properties 파일을 열어서 하기의 내용을 추가한다.

 

pring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/dbname #db connection url
spring.datasource.username=dbuser #username
spring.datasource.password=pswd #password

#Runtime 콘솔 화면에 SQL 쿼리문을 나타낸다.
spring.jpa.show-sql=true
# Runtime 콘솔 화면에 나타나는 SQL 쿼리문을 깔끔하게 정렬해서 나타낸다.
spring.jpa.properties.hibernate.format_sql=true
#show sql - jpa가 생성하는 쿼리를 콘솔로 출력
spring.jpa.properties.hibernate.show_sql=true
#use sql comment
spring.jpa.properties.hibernate.use_sql_comments=true
# JPA 사용 시 초기화 및 생성 전략 설정 (create, update, create-drop, validate)
# 보통 라이브 환경에서는 update, validate를 사용하고 개발시에는 create, create-drop을 사용합니다.
# create : 매번 테이블 생성을 새로 시도합니다.
# update : 변경이 필요한 경우는 alter 명령이 실행되고, 테이블이 없는 경우 create 명령이 실행됩니다.
# create-drop : create와 동일하며 SessionFactory가 내려가면 테이블을 drop 시킵니다.
# validate : update와 동일하게 Object를 검사하지만 스키마는 건드리지 않고 데이터만 변경합니다. 스키마 구조가 다르면 에러를 발생시킵니다.
# none 아무것도 안함.
# @Entity 컴포넌트를 스캔하여, 서버 실행 시 Table "자동 생성" 및 서버 종료 시 Table "자동 삭제"한다.
spring.jpa.hibernate.ddl-auto=update
spring.jpa.open-in-view=true

# spring.datasource.initialization-mode=always 바뀜
# 서버실행시 자동 실행 src/main/resources/data.sql
spring.sql.init.mode=always
spring.jpa.defer-datasource-initialization=true

 

반응형
반응형
  • 셀 병합을 위해서 마우스를 이용해서 셀 선택 후 마우스 좌측 버튼을 누른 상태에서 드래그 했을때 선택 영역이 표시되지 않는 오류 조치
  • Activity 선택 후 키보드의 방향 키로 Acivity 이동 시 메모와 연결된 선이 바로 Refresh 되지 않는 오류 조치

 

WANIPlanner Ver. 1.0.3.37 설치 프로그램

WANIPlanner_Installer.msi
4.19MB

 

WANIPlanner 실행 후 열기 버튼을 이용해서 로드해서 참조할 수 있는 예제 파일

개발WBS_Sample01.pln
0.31MB

 

WANIPlanner 사용을 돕기 위한 각 기능별 간단한 사용자 매뉴얼

WANIPlanner_Manual_Ver0.1.pdf
4.58MB

반응형

'WPF > WANIPlanner' 카테고리의 다른 글

WANIPlanner Ver 1.0.3.35  (0) 2024.04.20
WANIPlanner Ver 1.0.1.22  (0) 2024.03.07
WANIPlanner Ver 1.0.1.21  (1) 2024.03.04
WANIPlanner Ver 1.0.1.3  (0) 2024.01.14
WANIPlanner Ver 1.0.1.2  (1) 2024.01.12

+ Recent posts