Releases: ydb-platform/yoj-project
Releases · ydb-platform/yoj-project
YOJ 2.5.13 (backport 2.6.6 changes except for refactorings)
YOJ 2.6.6 (In the Fog)
Features:
- #121: Support preferable location for connections
- #119: Support predefined consumers for CDC topics
- #117: More consistent column naming for subobject fields
Now you can specify whether the@Column(name="...")
for a subobject column means absolute column name (mySubColumn
) or a name relative to subobject column name (subobject_mySubColumn
). Use the new@Column(columnNaming=...)
attribute for this.
⚠️ Future proofing: The default legacy behavior ("subobject fields with custom column names set have absolute names; otherwise subobject column names are relative") is kept in YOJ 2.x, but at least the default will be changed in YOJ 3.x toColumnNaming.RELATIVE
. You will be notified about this via a WARNing logged by the standardDeprecationWarnings.warnOnce()
mechanism.
Bugfixes:
- noticket: FIX: NPE could occur during a few first calls to
StringValueConverter
. Diagnosed from a real NPE stacktrace, so this is definitely possible in production.
Refactoring:
- noticket: Minor
YqlStatementPart
cleanup
We cleaned upYqlStatementPart
and its subclasses, and also a little bit ofYqlStatement
code generation logic.- Only
YqlPredicate
had meaningful (and usable) implementation ofYqlStatementPart.combine(List<YqlStatementPart>)
, only this implementation was kept;YqlStatementPart.combine()
now throwsUnsupportedOperationByDefault
. - We found out that
YqlOrderBy.combine()
implementation was incorrect since at least the initial YOJ commit: it did not usethis.sortKeys
so a part of ordering was disregarded, and also did not try to de-duplicate sort keys when combining multipleYqlOrderBy
statement parts. NowYqlOrderBy.combine()
just throwsUnsupportedOperationException
, to detect inadvertent users of this misfeature.
⚠️ Minor breakage: If your code relied on the (strange and undocumented) behavior ofYqlOrderBy.combine()
, it now will fail outright, with anUnsupportedOperationException
. - Deprecated the confusingly-named (not POJO-style)
YqlLimit.size()
andYqlView.index()
. Please explicitly use [new] POJO-style getters:YqlLimit.getLimit()
,YqlLimit.getOffset()
,YqlView.getIndex()
.
⚠️ Future proofing:YqlLimit.size()
andYqlView.index()
are deprecated for removal; they will be removed in YOJ 3.0. You will be notified about this via a WARNing logged by the standardDeprecationWarnings.warnOnce()
mechanism. - Deprecated
YqlStatement.mergeParts()
getting aStream
, replaced it by a variant ofYqlStatement.mergeParts()
getting aCollection
.
⚠️ Future proofing: Migrate your customYqlStatement
implementations to useYqlStatement.mergeParts(Collection<YqlStatementPart>
). You will be notified about this via a WARNing logged by the standardDeprecationWarnings.warnOnce()
mechanism.
- Only
YOJ 2.6.5 (Multiple table names for the same Entity)
- #32: Support multiple table names for the same
Entity
⚠️ This is an Experimental API, which can change and/or disappear in any release.
Use the newBaseDb.table(TableDescriptor)
call in yourDb
to specify bothEntity
class and table name; the same is also supported by the newAbstractDelegatingTable(TableDescriptor)
constructor.
YOJ 2.6.4 (improved logging for GRPC transport problems)
- #109: Use YDB Java SDK v2.3.7, with improved logging for GRPC transport problems
YOJ 2.5.12 (backport improved logging for GRPC transport problems)
YOJ 2.6.3 (bring back some deprecated YqlStatement ctors)
- #108: Bring back (as
@Deprecated(forRemoval=true)
) old ctors forMultipleVarsYqlStatement
,PredicateStatement
andYqlStatement
YOJ 2.6.2 (TableDescriptor refactorings)
YOJ 2.5.11 (backport TableDescriptor from 2.6.3)
YOJ 2.5.10 (Fix ClassCastException during initial schema check)
Backported to 2.5.x:
- #95 Fix ClassCastException during initial schema check
YOJ 2.6.1 (StdTxManager.useNewTxNameGeneration always enabled now)
- ca389b2 -
StdTxManager.useNewTxNameGeneration
field now does nothing and is deprecated for removal. It will be removed in YOJ 3.0.0.