반응형

전체 글 28

AWS OpenSearch DSL(Query Domain-Specific Language)

1. 기본 검색 쿼리: matchmatch 쿼리는 기본적으로 필드에서 단어를 검색하는데 사용. 특정 필드의 텍스트 검색{ "query": { "match": { "field_name": "search text" } }}2. 다중 필드 검색: multi_match여러 필드에서 같은 검색어를 찾고자 할 때 multi_match를 사용fields에 가중치 추가 가능{ "query": { "multi_match": { "query": "search text", "fields": ["field1", "field2^2"] } }}3. 필터 쿼리: boolbool 쿼리는 must, sho..

AWS 2024.11.01

JPA 연관관계 다대일, 일대다, 일대일, 다대다

다대일 [N:1], 일대다[1:N], 일대일[1:1], 다대다[N:N] 다중성 다대일 @ManyToOne 일대다 @OneToMany 일대일 @OneToOne 다대다 @ManyToMany 단방향, 양방향 테이블 - 외래 키 하나로 양쪽 조인가능 - 사실 방향이라는 개념이 없음 객체 - 참조용 필드가 있는쪽으로만 참조가능 - 한쪽만 참조하면 단방향 - 양쪽이 서로 참조하면 양방향 연관관계의 주인 - 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 - 객체 양방향 관계는 A->B, B->A처럼 참조가 2군데 - 객체 양방향 관계는 참조가 2군데 있음, 둘중 테이블의 외래키를 관리할 곳을 지정해야함 - 연관관계의 주인 : 외래키를 관리하는 참조 - 주인의 반대편 : 외래 키에 영향을 주지않음, 단순 조회만..

JPA 2024.03.04

JPA 연관관계 매핑 (One to Many,Many to Many)

객체의 참조와 테이블의 외래 키를 매핑 - 방향(Direction): 단방향, 양방향 - 다중성(Multiplicity): 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해 - 연관관계의 주인(Owner): 객체 양방향 연관관계는 관리 주인 이 필요 일대일(One-to-One) 관계: 각 행이 다른 테이블의 행과 하나의 관계를 가지는 것입니다. 예를 들어, 사람(Person)과 주민등록번호(Card)가 일대일 관계일 수 있습니다. 각 사람은 하나의 주민등록번호를 갖고, 각 주민등록번호는 한 사람에게만 속할 수 있습니다. 일대다(One-to-Many) 관계: 한 테이블의 행이 다른 테이블의 여러 행과 관계를 가지는 것입니다. 예를 들어, 부서(Department)와 직원(Emplo..

JPA 2024.02.23

JPA 기본 키 매핑(Entity Mapping) GenerationType.IDENTITY, SEQUENCE, TABLE

기본 키 매핑 직접 할당: @Id만 사용 자동 생성(@GeneratedValue) - IDENTITY: 데이터베이스에 위임, MYSQL - SEQUENCE: 데이터베이스 시퀀스 오브젝트 사용, ORACLE @SequenceGenerator 필요 - TABLE: 키 생성용 테이블 사용, 모든 DB에서 사용 @TableGenerator 필요 - AUTO: 방언에 따라 자동 지정, 기본값 GenerationType.IDENTITY 특징 기본 키 생성을 데이터베이스에 위임 - 주로 MySQL, PostgreSQL, SQL Server, DB2에서 사용 (예: MySQL의 AUTO_ INCREMENT) - JPA는 보통 트랜잭션 커밋 시점에 INSERT SQL 실행 - AUTO_ INCREMENT는 데이터베이스에..

JPA 2024.02.22

JPA hibernate.hbm2ddl.auto 매핑 어노테이션(mapping annotations)

JPA hibernate.hbm2ddl.auto 매핑 어노테이션 @Column 컬럼 매핑 @Temporal 날짜 타입 매핑 @Enumerated enum타입 매핑 @Lob BLOB, CLOB 매핑 @Transient 특정 필드나 속성이 데이터베이스에 저장되지 않아야 함을 지정하는 데 사용 @Column - name : 필드와 매핑할 테이블의 컬럼 이름 - insertable, updatable : 등록,변경 가능 여부 - nullable(DDL) : null값의 허용 여부를 설정, false로 설정하면 DDL 생성시에 not null 제약조건이 붙는다 - unique(DDL) : @Table의 uniqueConstraints와 같지만 한 털럼에 간단히 유니크 제약조건을 걸때 사용 - columnDefin..

JPA 2024.02.22

JPA hibernate.hbm2ddl.auto 데이터베이스 스키마 자동생성

hibernate.hbm2ddl.auto는 Hibernate에서 사용되는 설정 옵션 중 하나입니다. 이 옵션은 Hibernate가 실행될 때 데이터베이스 스키마를 자동으로 생성, 업데이트 또는 삭제하는 방법을 제어합니다. persistence.xml > properties create 기존테이블 삭제 후 다시생성(DROP,CREATE) create-drop create와 같으나 종료시점에는 테이블 DROP update 변경분만 반영(운영DB에는 사용하면 안됨) validate 엔티티와 테이블이 정상 매핑되었는지만 확인 none 사용하지않음 주의점 - 운영장비에는 절대 create, create-drop, update 사용하면 안됨 - 개발 초기 단계에는 create 또는 update - 테스트 서버는 u..

JPA 2024.02.21

JPA 플러시(flush)

플러시(flush) - 영속성 컨텍스트(PersistenceContext)의 변경내용을 데이터베이스에 반영 플러시 발생 - 변경감지 - 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 - 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송 PersistenceContext flush - em.flush() (직접호출) - 트랜잭션 커밋 (플러시 자동호출) - JPQL 쿼리 실행 (플러시 자동호출) 플러시 모드 옵션 em.setFlushMode(FlushModeType.COMMIT); FlushModeType.AUTO 커밋이나 쿼리를 실행할 때 플러시(기본값) FlushModeType.COMMIT 커밋할때만 플러시 Flush(플러시) - PersistenceContext 를 비우지않음 - Persisten..

JPA 2024.02.21

JPA PersistenceContext(영속성컨텍스트), 장점

영속성 컨테스트(PersistenceContext) - JPA를 이해하는데 가장 중요한 용어 - "엔티티를 영구 저장하는 환경" - EntityManager.persist(entity) 엔티티의 생명주기 - 비영속(new/transient) - 영속 (managed) - 준영속 (detached) - 삭제(removed) 비영속 셋팅만 한 상태 영속 객체를 저장한 상태 준영속 엔티티를 영속성 컨테스트에서 분리 em.detach(member); 삭제 객체를 삭제한 상태 em.remove(member); PersistenceContext의 이점 - 1차 캐시 - 동일성(identity) 보장 - 트랜잭션을 지원하는 쓰기 지연(transactional write-behind) - 변경감지(Dirty Check..

JPA 2024.02.21

JPA 소개, JPA 장점, ORM

JPA - Java Persistence API - 자바 진영의 ORM 기술 표준 ORM - Object-relational mapping(객체 관계 매핑) - 객체는 객체대로 설꼐 - 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 - 대중적인 언어에는 대부분 ORM 기술이 존재 JPA는 애플리케이션과 JDBC 사이에서 동작 JPA 저장 - SELECT SQL 생성 - JDBC API 사용 - ResultSet 매핑 - 패러다임 불일치 해결 JPA 장점 - SQL 중심적인 개발에서 객체 중심으로 개발 - 생산성 저장 : jpa.persist(member) 조회 : Member member = jpa.find(memberId) 수정 : member.setName("..

JPA 2024.02.20

git 명령어

git init: 새로운 Git 저장소를 초기화합니다. git clone: 원격 저장소를 복제합니다. git add: 변경된 파일을 스테이징 영역에 추가합니다. git commit: 스테이징 영역에 있는 변경 사항을 커밋합니다. git status: 작업 디렉토리의 상태를 확인합니다. git push: 로컬 저장소의 변경 사항을 원격 저장소로 업로드합니다. git pull: 원격 저장소의 변경 사항을 로컬 저장소로 가져옵니다. git branch: 브랜치를 만들거나 목록을 표시하거나 삭제합니다. git checkout: 브랜치를 전환하거나 파일을 복구합니다. git merge: 브랜치를 병합합니다. git log: 커밋 로그를 확인합니다. git reset: 커밋을 되돌리거나 인덱스를 초기화합니다. gi..

Web 2024.02.20
반응형