YDB ORM для Java (YOJ) — это облегченный ORM для неизменяемых сущностей.
YOJ хорошо интегрируется с YDB, а также имеет реализацию хранилища в памяти с семантикой, подобной YDB, для молниеносных тестов на постоянство.
YOJ лицензируется по лицензии Apache версии 2.0.
Если вы хотите внести свой вклад в YOJ, прочтите Уведомление для внешних участников и следуйте инструкциям.
Чтобы использовать YOJ в своем проекте , просто добавьте YOJ BOM (спецификация материалов) в свои
Maven:
<зависимость>tech.ydb.yoj йой-бом <версия>2.6.1версия>пом импорт зависимость>
Затем выберите только те модули, которые вам нужны, указав только groupId
= tech.ydb.yoj
и artifactId
= yoj-
(см. имена
ниже).
? YOJ состоит из следующих модулей:
databind
: основная логика привязки данных, используемая для преобразования между объектами Java и строками базы данных (или чем-то еще, что на самом деле может быть представлено Java Map
).
repository
: основные абстракции и API для сущностей, репозиториев, транзакций и т. д. Entity API разработан так, чтобы быть минимально навязчивым, так что объекты вашего домена (со всей важной бизнес-логикой!) могут легко стать сущностями.
repository-ydb-v2
: реализация API репозитория для YDB. Использует YDB SDK v2.x. Рекомендуется.
repository-inmemory
: реализация API репозитория в памяти с использованием постоянных структур данных из коллекций Eclipse. Имеет подобную YDB семантику для изменения данных, позволяющую легко и быстро протестировать вашу бизнес-логику без запуска контейнеров или доступа к реальной установке YDB. Настоятельно рекомендуется.
repository-ydb-common
: общая логика для всех реализаций репозитория YDB, независимо от используемой версии YDB SDK.
repository-test
: базовые тесты, которые должны пройти все реализации репозитория.
json-jackson-v2
: поддержка сериализации и десериализации JSON полей сущностей с использованием Jackson 2.x.
aspect
: аспект AspectJ и аннотация @YojTransactional
для использования с AspectJ и Spring AOP. Обеспечивает использование Spring @Transactional
для ваших методов, которым необходимо инициировать или продолжить транзакцию YDB.
ext-meta-generator
: обработчик аннотаций, который генерирует пути к полям для каждого из ваших полей Entity
, которые будут использоваться с TableQueryBuilder
( Table.query()
DSL) и YqlPredicate
.
util
: служебные классы, используемые в реализации YOJ.