Releases: babyfish-ct/jimmer
v0.9.78(Big change of Kotlin)
-
Fixed #1005
-
Both framework and examples are upgraded to K2
User kotlin projects need to upgrade the version of kotlin and KSP
- Kotlin:
2.1.20
- KSP:
2.1.20-2.0.0
- Kotlin:
v0.9.77
-
Fixed #1000
-
Supports #1004 (Less db locks)
-
Add
QueryReason.FECHTER
-
Addressing the over-optimization issue with the save command, use smarter strategy.
The save command supports using fetcher/viewType to control the format of the saved object. If the shape of the newly saved object is larger than what the fetcher/viewType requires, optimization is performed by directly trimming the current object instead of fetching it from the database.
However, this optimization is problematic. Since Jimmer supports UpsertMask, certain properties of the user object may not always be saved to the database. Therefore, in such cases, the optimization should be abandoned, and the existing object should be considered untrustworthy, insisting on querying from the database.
v0.9.76
v0.9.74
-
Native sql fragment API is changed
- Java: Redesign
- Kotlin: Enhancement
Both of them support vararg list of expressions.
-
Both java/kotlin DSL support
plus
,minus
anddiff
for time field.This is big change
-
Add apt argument
jimmer.dto.fieldVisibility
-
Fix the bug about constant
true
in DTO file cannot be compiled -
Save command shortcut methods with
SaveMode
but withoutAssociatedSaveMode
is added/un-deprecated -
More save command shortcust methods are deprecated, now saving and re-fetching by
fetcher/viewType
must usesaveCommand
directly.
v0.9.73
v0.9.72
v0.9.71
-
Big enhancement of save command
Now, save command can controlled the shaped of returned modifiedEntity, by Fetcher (accessmodifiedEntity
) or by Output DTO class (accessmodifiedView
)
If the desired object shape does not exceed the existing modifiedEntity, it is directly clipped based on the existing object. Otherwise, a new query without cache is opened
Now all the save behaviors of examplesjimmer-sql
,jimmer-sql-kt
,jimmer-sql-graphql
andjimmer-sql-graphql-kt
care changed. -
New annotation
@KotilinDto
This annotation can only be used to decorate DTO types, not kotlin types (No annotation target)
This annotation is handled byjimmer-ksp
, ignored byjimmer-apt
Jimmer can generated bothimmutable
andmutable
DTO for kotlin, now you can use this annotation to control immutability of DTO type one by one, no only set the global ksp configurationjimmer.dto.mutable
-
PropScalarProviderFactory
is supported
This interface can provide property level scalar provider implicitly, jimmer will uses it to ask user whether a property requires a scalar provider. If spring-stater is used, it should be a managed bean, otherwise, it should be configuration of SqlClient. -
Many shortcut methods for the save command have been marked as deprecated.
The save command has a wide range of configurable behaviors. In the early stages, many shortcut overload versions were requested, leading to severe API bloat due to the combinatorial explosion of options.
As the save command evolved, its functionality continued to expand, and the number of shortcut API permutations grew accordingly, eventually reaching a point where maintenance became extremely difficult. In this version, many methods have been marked as deprecated to give users a transition period. Ultimately, the API will undergo streamlining.
v0.9.69
v0.9.68
-
Kotlin API Major Upgrade: DSL API Becomes Safer
If compilation errors occur after the update, it is actually a good thing, as it will inevitably expose incorrect usage in certain complex scenarios.All mutable statement DSL types are decoarted by
@DslScope
, which is declarted by@DslMarker
of kotlin stdlib.
That means if you uses subquery (neither explicit or implicit), you should not use members such astable
,where
of parent objects. -
Implemented #959 and #960
Note that #959 was not implemented as originally requested. To manage the complexity of the DTO language, documentation, and plugins, an alternative implementation approach was adopted.