A revolutionary ORM framework for both java and kotlin.
Fix/Support #502, #003, #507, #511, #512, #513, #519, #521, #522, #523, #524, #525, #528, #530, #537, #531, #539, #541, #550, #551, #557
ScalarProvider
becomes interface, a new class AbstractScalarProvider
is provided.
Fixed bug raised when both paging query and global filter are used.
inlist
predicates is changed. the max values become 1000
(the limit or oracle, longer list will be splited to parts joined with or
), new configuration jimmer.in-list-padding-enabled
and jimmer.in-list-to-any-equality.enabled
is provided.
Better join type deciding for dynamic predicate.
Replace jackson serializataion/deserialization of immutable objects, now it allows user to use any advanced feature of jackson.
Types decorated by @Embeddable
and @Immutable
can be mapped by DTO language.
Avoid to use ctx.getBeansOfType
of spring framework which ignores the exceptions during object creating.
Let nullable properties of input DTO support 4 modifiers: fixed, static, dynamic, fuzzy.
Logical deleted flag is automatically excluded from allScalars
(Both fetcher and DTO language)
User annotation @ExcludedFromAllScalars
which allows any properties can be excluded from allScalars
(Both fetcher and DTO language)
SqlClient supports zoneId configuration, which can parse date data based on the time zone of the database instead of the time zone of the current JVM
Formula company attributes support associated attributes, see the following two examples (take kt as an example)
@Formulat(depenedencies = ["authors"])
val authorCount: Int
get() = authors.size()
@Formula(dependencies = ["authors.firstName", "authors.lastName"])
val authorNames: List<String>
get() = authors.map { "${it.firstName} ${it.lastName}" }
Support ImmutableCompanion for kotlin
@Entity
interface TreeNode { ... omit properties... companion object: ImmutableCompanion<TreeNode> } If you declare this companion object with the selection as an immutable interface, you can build the immutable object using the golang struct initialization style
val treeNode = TreeNode {
name = "etc"
childNodes = listOf(
TreeNode {
name = "host"
},
TreeNode {
name = "man.conf"
}
)
}
The corresponding example 'kotlin/jimmer-core-kt' has been modified
Fixes/Support: #478, #490, #493, #494
Fixed the bug that embeddable does not use flat mode in specification of DTO language
Kotlin can only be ToOne and Embeddable syntactic sugar
Previous code
store().apply {
name = "MANING"
website = "https://www.maning.com"
}
Code now
store {
name = "MANING"
website = "https://www.maning.com"
}
flat
is supported in DTO language@JoinTable
supports cascadeDeletedBySource
and cascadeDeletedByTarget
eq
and ne
of kotlin accept nullable valueDataFetchingEnvironment
can be used to create jimmer fetcherJoinTable.inverseColumnName
-> JoinTable.inverseJoinColumnName
Order.makeOrders
Support array mapping for H2 and Postgres, Postgres requires @Column(sqlElementType = '...')
Fix issue/Support #370, #381, #386, #390, #391, #392, #393, #394, #395, #422, #411, #405, #421
Add @JoinTable.LogcalDeletedFilter
Add @JoinTable.JoinTableFilter
Add @JoinTable.deletedWhenEndpointIsLogicallyDeleted
Support database which does not support tuple expression. Eg, SQL server
Add optioanl dependency jimmer-client-swagger
, If it is runtime classpath, Jimmer's OpenAPI implementation will use the embedded CSS and JS, not extranl CSS/JS links.
Add global properties jimmer.client.controller-nullity-checked
, it is enabled, it will validate argumenents of REST methods in restrict mode
The count
of (K)ConigurableTypedRootQuery
is changed to fetchUnlimitedCount
Support org.babyfish.jimmer.Page<T>
,
Fetch jimmer page: fetchPage(pageIndex, pageSize)
Fetch spring page: fetchPage(pageIndex, pageSize, SpringPageFactory.create())
JRepository.pager
is deprecated
Redesign the recursive query (Big change)
Support merge command(save command without dissociation)
Fetcher.allTableFields()
changed, if a foreign key base property has its @IdView property, fetch the idview property.
Add allReferenceFields()
into fetcher, add #allReferences
into DTO language.
Let Draft directly support getters and setters for associated ids even if there is no @IdView property
The kotlin extension function fetchPage
is renamed to fetchSpringPage
Big change version 0.8.77, Please view QuickView
of documentation
@org.babyfish.jimmer.JsonConverter
, documentation will be added laterCachableFilter.getAffectedSourceIds
and TransisentResolver.getAffectedSourceIds
LAX
and CHECK
into DisssociationActionexample/java/data-authorization
High-quality documentation is supported
Fix #257, #258
English documentation reviewed