SQL> startup ORACLE instance started. Total System Global Area 914358272 bytes Fixed Size 2100520 bytes Variable Size 230687448 bytes Database Buffers 675282944 bytes Redo Buffers 6287360 bytes Database mounted. ORA-01092: ORACLE instance terminated. Disconnection forced SQL > startup 을 실행했을 때 ORA-01092: ORACLE instance terminated. Disconnection forced 에러가 발생했었다.. 로그를 읽다보니 startup upgrade로 실행시키라..
Multi Module 이란? 필요한 기능별로 Module 을 생성하는 것 레고를 조립하듯 필요한 Module을 조립 N개의 Module이 조립되어있는 프로젝트를 Multi Module 프로젝트라고 부름 예를들어 API 서버에서도 DB Entity 가 필요하고 Batch 서버에도 동일한 DB Entity 가 필요한데 중복으로 관리하면 리스크가 늘어남 중복된 Entity를 모듈화하여 사용하기 위해 Multi Module 프로젝트를 사용 Exception 핸들링 언어 또는 프레임워크에서 발생한 Exception 은 반드시 Custom 하게 Wrapping 하여 처리하여야 함 @RestControllerAdvice 어노테이션을 사용하여 모든 예외를 해당 클래스에서 클라이언트와 사전에 정의한 값으로 재정의 Mu..
Member Entity @Data @Entity public class Member { @Id @Column(name = "MEMBER_ID") @GeneratedValue // strategy 생략 시 AUTO 전략 사용 private Long id; private String name; private String city; private String street; private String zipcode; } Order Entity @Data @Entity @Table(name="ORDERS") public class Order { @Id @GeneratedValue @Column(name = "ORDER_ID") private Long id; @Column(name = "MEMBER_ID") pr..
기본키 매핑 방법 직접 할당 : @Id 만 사용 자동생성 : @GeneratedValue 사용 IDENTITY : 데이터 베이스에 위임. MySQL SEQUENCE : 데이터베이스 시퀀스 오브젝트 사용, ORACLE, @SequenceGenerator 필요 TABLE : 키 생성용 테이블, 모든 DB에서 사용, @TableGenerator 필요 AUTO : 방언에 따라 자동 지정 IDENTITY 전략의 특징 기본키 생성을 데이터베이스에 위임 주로 MySQL, PostgreSQL, SQL Server, DB2 에서 사용 JPA는 보통 트랜잭션 커밋 시점에 INSERT SQL 실행 AUTO_INCREMENT 는 데이터베이스에 insert sql을 실행한 이후 ID 값을 알 수 있음 IDENTITY 전략은 e..
발생원인 - Apache POI의 autoSizeColumn 메소드를 사용할 때 나타나는 에러 - 아직 데이터가 없거나 셀이 아직 생성되지 않은 열의 너비를 조정하려고 시도하면 발생할 수 있는 에러 해결방법 - 데이터를 셀에 채운 후 autoSizeColumn 메서드 호출 - setColumnWidth를 사용하여 셀 너비를 직접 지정
엔티티 매핑 소개 - 객체와 테이블 매핑 : @Entity, @Table - 필드와 컬럼 매핑 : @Column - 기본 키 매핑 : @Id - 연관관계 매핑 : @ManyToOne, @JoinColumn @Entity - @Entity 가 붙은 클래스는 JPA가 관리하는 클래스이자 엔티티이자 - 기본 생성자 필수 - final, enum, interface, inner 클래스는 엔티티 클래스로 사용할 수 없음 - 저장할 필드에 final을 사용할 수 없음 - name 속성 : JPA에 사용할 엔티티 이름을 지정 @Table - @Table은 엔티티와 매핑할 테이블을 지정할 수 있다 데이터베이스 스키마 자동 생성 - DDL 을 애플리케이션 실행 시점에 자동 생성 - 테이블 중심 -> 객체 중심 - 데이터..
1차캐시 Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); // 1차 캐시에 저장됨 em.persist(member); // 1차 캐시에서 조회 Member findMember = em.find(Member.class, "member1"); - find 를 사용하여 데이터 조회 시 데이터베이스를 먼저 찾는것이 아닌 1차 캐시를 먼저 조회해서 데이터를 찾음 Member findMember2 = em.find(Member.class, "member2"); 영속 엔티티의 동일성 보장 - 1차 캐시로 반복 가능한 읽기 등급의 트랜잭션 격리 수준을 데이터베이스가 아닌 애플리케이션 차원에서 제공 엔티티 등록 - 트랜잭션..
영속성 컨텍스트 정의 - JPA를 이해하는데 가장 중요한 용어 - 엔티티를 영구 저장하는 환경 - EntityManager.persist(entity) - 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 엔티티의 생명주기 - 비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 - 영속 (managed) : 영속성 컨텍스트에 관리되는 상태 - 준영속 (detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 - 삭제 (removed) : 삭제된 상태 비영속 상태 - JPA 와 전혀 관계가 없는 상태 Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); 영속상태 // 비영속 ..
- Total
- Today
- Yesterday
- nginx
- N+1
- JPA
- level0
- EC2
- Til
- OS
- Java
- 기술면접
- db
- spring
- 인덱스
- AWS
- 트랜잭션
- ddl-auto
- 파일업로드설정
- TCP
- SpringSecurity
- Oracle
- CodeDeploy
- ci/cd
- SpringGraphQL
- 프로그래머스
- 운영체제
- graphql
- 네이버클라우드
- 람다식
- ORA-27125
- Travis CI
- 트랜잭션격리성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |