YOJ(YDB ORM for Java)는 불변 엔터티를 위한 경량 ORM입니다.
YOJ는 YDB와 잘 통합되며 매우 빠른 지속성 테스트를 위해 YDB와 유사한 의미 체계를 갖춘 메모리 내 저장소 구현도 갖추고 있습니다.
YOJ는 Apache 라이선스 버전 2.0에 따라 라이선스가 부여됩니다.
YOJ에 기여하고 싶다면 외부 기여자에 대한 공지를 확인하고 지침을 따르세요.
프로젝트에서 YOJ를 사용하려면 Maven
에 YOJ BOM(Bill of Materials)을 추가하면 됩니다.
<의존성>tech.ydb.yoj yoj-bom <버전>2.6.1버전>폼 <범위>가져오기범위> 종속성>
그런 다음 필요한 모듈만 사용하여 groupId
= tech.ydb.yoj
및 artifactId
= yoj-
만 지정합니다(아래
이름 참조).
? YOJ는 다음 모듈로 구성됩니다.
databind
: Java 객체와 데이터베이스 행(또는 실제로 Java Map
으로 표시할 수 있는 모든 것) 사이를 변환하는 데 사용되는 핵심 데이터 바인딩 논리입니다.
repository
: 엔터티, 리포지토리, 트랜잭션 등에 대한 핵심 추상화 및 API입니다. 엔터티 API는 방해를 최소화하도록 설계되었으므로 도메인 개체(모든 유용한 비즈니스 논리 포함!)가 쉽게 엔터티가 될 수 있습니다.
repository-ydb-v2
: YDB용 리포지토리 API 구현입니다. YDB SDK v2.x를 사용합니다. 추천합니다.
repository-inmemory
: Eclipse 컬렉션의 영구 데이터 구조를 사용하는 In-Memory Repository API 구현입니다. 데이터 수정을 위한 YDB와 유사한 의미 체계를 갖추고 있어 컨테이너를 회전하거나 실제 YDB 설치에 액세스하지 않고도 비즈니스 로직을 쉽고 빠르게 테스트할 수 있습니다. 적극 권장합니다.
repository-ydb-common
: 사용된 YDB SDK 버전에 관계없이 모든 YDB 저장소 구현에 대한 공통 논리입니다.
repository-test
: 모든 리포지토리 구현이 통과해야 하는 기본 테스트입니다.
json-jackson-v2
: Jackson 2.x를 사용하여 엔터티 필드의 JSON 직렬화 및 역직렬화를 지원합니다.
aspect
: AspectJ 및 Spring AOP와 함께 사용하기 위한 AspectJ 관점 및 @YojTransactional
주석입니다. YDB 트랜잭션을 시작하거나 계속해야 하는 메서드에 대해 Spring @Transactional
과 유사한 경험을 허용합니다.
ext-meta-generator
: TableQueryBuilder
( Table.query()
DSL) 및 YqlPredicate
와 함께 사용할 각 Entity
필드에 대한 필드 경로를 생성하는 주석 프로세서입니다.
util
: YOJ 구현에 사용되는 유틸리티 클래스입니다.