Releases: babyfish-ct/jimmer
v0.9.50
v0.9.49(Big Change)
-
Support join fetch for reference association (one-to-one or many-to-one), and property-level configurations are supported by Output DTO.
Development has been finished now, so documentation is not ready, short guide here
-
Java Fetcher Example:
-
Kotlin Fetcher Example:
-
Java OutputDTO Example:
-
UserView2
in https://github.com/babyfish-ct/jimmer/blob/main/project/jimmer-sql/src/test/dto/User.dto -
BookViewWithConfiguration
andBookViewWithConfiguration2
in https://github.com/babyfish-ct/jimmer/blob/main/project/jimmer-sql/src/test/dto/org/babyfish/jimmer/sql/model/Book.dto
-
-
Kotlin OutputDTO Example
-
UserView2
in https://github.com/babyfish-ct/jimmer/blob/main/project/jimmer-sql-kotlin/src/test/dto/User.dto -
BookViewWithConfiguration
andBookViewWithConfiguration2
in https://github.com/babyfish-ct/jimmer/blob/main/project/jimmer-sql-kotlin/src/test/dto/org/babyfish/jimmer/sql/kt/model/classic/book/Book.dto
-
9 built-in configurations:
!fetchType
,!where
,!orderBy
,!filter
,!recursion
,!limit
,!offset
,!batch
,!depth
The Antlr grammar for the AST of newest OutputDTO: https://github.com/babyfish-ct/jimmer/blob/main/project/jimmer-dto-compiler/src/main/antlr/org/babyfish/jimmer/dto/compiler/Dto.g4
-
-
Global configuration
jimmer.mutation-transaction-required
, if it is true, any mutation operations without transaction context will report error.
v0.9.47
v0.9.46-Big Change
-
Big enhancement, merging conflict table joins becomes smarter
For conflict table joins with different join type (INNER, LEFT, RIGHT, FULL)
Conflict table joins with same join type will always be merged
-
If join paths are declared in
and
predicate, they will be mergedAnd
predicate support simpler code style, not onlywhere(and(a, b))
is OK, but also more styles such aswhere(a) where(b)
,where(a, b)
-
If join paths are declared in
or
predicate, they will not be merged
Mechanism: There is a class called
JoinTypeMergeScope
, the default scope is null (Global default scope), theor
predicate creates separated merge scope for each sub predicate, only the join paths in same merge scope can be merged.Note, if the function
or
has only one non-null (dynamic predicate such as "table.nameeq?
sth" may return null) sub predicate argument, this function will be optimized, noor
predicate will be created and the argument will be returned directly so that no merge scope will be created. -
-
FR #878 is supported.