Skip to content

Exposed ydb spring starter#218

Closed
fotonchicc wants to merge 45 commits into
ydb-platform:mainfrom
fotonchicc:exposed-ydb-spring-starter
Closed

Exposed ydb spring starter#218
fotonchicc wants to merge 45 commits into
ydb-platform:mainfrom
fotonchicc:exposed-ydb-spring-starter

Conversation

@fotonchicc
Copy link
Copy Markdown
Contributor

No description provided.

fotonchicc and others added 30 commits March 23, 2026 01:08
…nation, testcontainers

Reshapes the dialect around the review feedback in PR ydb-platform#214:

- Retry: drop YdbRetryingTransactions object in favour of top-level
  ydbTransaction(db, idempotent, ...) and ydbReadOnlyTransaction(db).
  Classifier now only looks at YdbStatusable (no error-text parsing) and
  no longer unregisters the whole Database on BAD_SESSION.
- DML: render native REPLACE in addition to UPSERT so Table.upsert and
  Table.replace from Exposed work out of the box. Reject MERGE explicitly.
- Locking: remove YdbOptimisticLocking. YDB is OCC by design; conflicts
  surface as retryable Transaction locks invalidated.
- Pagination: remove KeysetPagination. Exposed already provides
  orderBy/limit; the helper was sugar.
- DDL DSL: extract YdbTableDsl interface, YdbTable and YdbIdTable share
  it via Kotlin delegation to a single YdbTableFeatures. No more copy-paste
  of ttl()/secondaryIndex()/createStatement() across both.
- Types: temporal columns default to Date32 / Datetime64 / Timestamp64;
  YdbDialectProvider.connect(forceLegacyDatetimes = true) switches to
  legacy types. Drop string/utf8 UUID variants and YdbUuidStringIdTable
  (native Uuid is the primary path). YdbUuidColumnType.notNullValueToDB
  stops stringifying. UUID/uuidString helpers removed; only ydbUlid()
  top-level function remains.
- Tests: BaseYdbTest now uses YdbHelperExtension (testcontainers, same as
  hibernate-dialect and spring-data-jdbc-ydb). Unit tests that needed a
  real DB to render DDL moved into integration/basic/*IT. New tests cover
  retries, REPLACE, legacy datetimes flag and Uuid round-trip without
  string conversion.
- Build: pom aligned with sibling modules (ydb-sdk-bom, log4j2,
  maven-javadoc/source plugins, ossrh-s01 profile,
  TESTCONTAINERS_REUSE_ENABLE / YDB_DOCKER_IMAGE on failsafe).
  docker-compose.yml removed; CI workflow runs mvn verify only.
- New: .github/workflows/publish-kotlin-exposed-dialect.yaml mirrors
  publish-hibernate-dialect.yaml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@fotonchicc fotonchicc closed this May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants