Releases: babyfish-ct/jimmer
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.
v0.9.66
v0.9.65
v0.9.64
v0.9.63
-
Support for transactions through the
sqlClient.transaction
method:- If using an IOC framework, encapsulate the transaction management capabilities of the IOC framework.
For example, when using
jimmer-spring-starter
, you don't need to do any work;sqlClient.transaction
will automatically utilize Spring's transaction management capabilities. - If not using any IOC framework, Jimmer provides a lightweight transaction propagation implementation.
- Lightweight transaction propagation mechanism implementation
- Lightweight transaction propagation mechanism test cases
Therefore, whether the user uses an IOC framework and its transaction management mechanism or not, they can usesqlClient.transaction
to handle transactions.
To further unify the usage scenarios of using an IOC framework and not using an IOC framework, Jimmer provides compile-time AOP aspect functionality. Please refer to @Tx. Try using this annotation on classes or methods, and the helpful error messages will guide you step-by-step to use it correctly.
- If using an IOC framework, encapsulate the transaction management capabilities of the IOC framework.
v0.9.62
-
Let APT/KSP support internal option
jimmer.buddy.ignoreResourceGeneration
for intellij plugin jimmer-buddyNote:
- This is internal option for IDE plugin and it disables some features of pre-compiler so it should NEVER be used by developer directly!
- JimmerBuddy is fully ready half an hour ago, if your plugin is old, please upgrade it to
1.0.5-242