스프링 (Spring)(16)
-
JPA(Jakarta Persistence API) - Entity Operation
Persistence Context 영속성 컨텍스트(persistence context)는 엔티티 인스턴스들이 관리되는 장소입니다.그리고 엔티티 매니저(entity manager)는 영속성 컨텍스트를 방문해 상호작용 할 수 있는 인터페이스를 가지고 있고요.쉽게 말해 엔티티 매니저는 우리가 어플리케이션에서 생성한 엔티티 인스턴스들을영속성 컨텍스트에 방문해서 가져와, 이를 통해 실제 데이터베이스에 CRUD를 수행한다고 생각하면 됩니다. 그렇기에 당연히 엔티티 매니저는 쿼리(query)를 생성할 수 있습니다.예를 들어 JPA(Jakarta Persistence API) - Entity 글에서 작성한 코드 중 하나를 실행해보면val peach = entityManager.find(Peach::class.java..
2024.06.06 -
JPA(Jakarta Persistence API) - Entity
Entity 엔티티(entity)란 가벼운 영속성 도메인 객체를 의미합니다.An entity is a lightweight persistent domain object. 가볍다라는 건, 최소한의 노력과 자원을 써야된다는 말과 같습니다.Jakarta에서 가장 쉽게 엔티티를 표현할 수 있는 건 그저 클래스(class)입니다. 그리고 영속성(persistent)이라는 건 없어지지 않는 특성을 생각하면 됩니다.쉽게 이해하면 우리가 파일을 저장했을 때 컴퓨터를 껐다 켜도 파일 내용이 사라지지 않는 것처럼이죠. 바로 뒤에 도메인(domain)이라는 용어를 썼는데,이는 곧 엔티티를 수단으로써 데이터의 변경 사항을 어딘가에 기록해둔다는 것입니다.즉 엔티티 자체가 데이터를 영속화하지 않고, 무언가가 엔티티를 통해서 데이..
2024.05.22 -
JPA(Jakarta Persistence API) - Overview
본 글은 아래 Jakarta Persistence 문서를 참고하여 작성했습니다.Copyright (c) 2019, 2024 Eclipse Foundation. This document includes material copied from or derived from https://jakartaee.github.io/persistence/latest/draft.html Jakarta PersistenceThe following are reserved identifiers: ABS, ALL, AND, ANY, AS, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, BY, CASE, CEILING, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, CONC..
2024.05.19 -
Kotlin 플러그인 All-open 파헤치기 (feat, JPA Fetch)
All-open 코틀린의 클래스와 메소드들은 기본적으로 final 입니다.예를 들어 아래와 같은 Parent 클래스가 있다고 하면class Parent { fun hello() = "hello world!"} 이제 Parent 클래스를 상속하지 못합니다. 말 그대로 final 이기 때문에 건드릴 수 없죠 클래스를 open 시켜준다고 한들open class Parent { fun hello() = "hello world!"} 마찬가지입니다. 따라서 아래와 같이 모두 open 키워드를 달아주어야 상속하거나 오버라이드 할 수 있습니다.open class Parent { open fun hello() = "hello world!"} all-open 플러그인은 사전에 정해둔 어노테이션을 클래..
2024.05.18 -
SpringBootTest에 HSQL 데이터베이스 적용기
HSQL? Spring 문서의 Data 항목을 보면 간단하게 만들 수 있는 Embeded DataSource를 소개해줍니다. DataThe Spring Framework provides extensive support for working with SQL databases, from direct JDBC access using JdbcClient or JdbcTemplate to complete “object relational mapping” technologies such as Hibernate. Spring Data provides an additional level ofdocs.spring.io 그냥 쉽게 말해 외부 데이터베이스 연결 없이 자체 구축되는 데이터베이스라고 이해하고 있습니다.후보군은 ..
2024.05.03 -
테스트 시 발생하는 위험 메시지 무시해보기
Background 사실 이 글을 작성하면서 조금 께름칙하네요.모름지기 시스템에서 뱉는 불편하다는 메시지는 잘 알고 해결해야될 듯 한데,이번 경우는 더 파고들어도 뭐가 안 나오고, 크게 걱정 없다는 조언? 들이 있어서 무시해보기로 합니다. 우리 시간은 소중하고, 짜증나는 빨간색 글씨를 없애기 위함이죠 A Java agent has been loaded dynamically 첫 번째 Warning입니다.WARNING: A Java agent has been loaded dynamically (/home/park/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.14.12/be4984cb6fd1ef1d11f218a648889df..
2024.05.01