Skip to content

Releases: babyfish-ct/jimmer

v0.9.9

03 Nov 00:07
Compare
Choose a tag to compare
  1. Fixed/Provided #736, #737, #739, #740, #741, #745 and #746
  2. Let where of DSL support Specification (Not only JSpecification and KSpecification)
  3. Add protected methods executeQuery, createQuery, createUpdate, createDelete into AbstractKotlinRepository

v0.9.5

30 Oct 23:38
Compare
Choose a tag to compare
  1. Fixed #734 and #735
  2. Better exception message when create isNull based on non-null expression

v0.9.4

27 Oct 21:13
Compare
Choose a tag to compare

A new feature for save command is added.

By default, this key-only object is not id-only object, so it will be consider as long association and saved recursivly.

Now, save command support a new configuration:

setKeyOnlyAsReference(A::childNodes) or setKeyOnlyAsReferenceAll().

This configuration change the default behavior, consider key-only as short association, it will be only referenced, will not be saved.

Before refer key-only object, jimmer will execute an extra select statement to convert keys to ids, so QueryReason.KEY_ONLY_AS_REFERENCE is added.

v0.9.3

26 Oct 18:27
Compare
Choose a tag to compare
  • Fixed issues #701, #725, #728.
  • Added NotUniqueKeyExceptionTranslator into jimmer example projects jimmer-sql, jimmer-sql-kt, jimmer-sql-graphql, jimmer-sql-graphql-kt.
  • Added new predicate expressionIn which is designed for expression collection, not value collection.
  • Added unaryMinus (- in kotlin) for numeric expression.

v0.9.1

20 Oct 16:37
Compare
Choose a tag to compare

v0.9.0

19 Oct 21:18
Compare
Choose a tag to compare

Breaking Change

  • JSqlClient (jimmer-sql), KSqlClient (jimmer-sql), JRepository (jimmer-spring-boot-starter), KRepository (jimmer-spring-boot-starter)

    • Delete depcarated methods such as merge(..., SaveMode) and append(...), saveAll(...), batchSave(...) and batchDelete(...)

    • For save methods whose name is not save(insert, insertIfAbsent, update, marge), the default value of AssociatedSaveMode is no longer REPLACE, it becomes

      • insert: APPEND
      • insertIfAbstent: APPEND_IF_ABSENT
      • update: UPDATE
      • merge: MERGE
  • JRepository (jimmer-spring-boot-starter), KRepository (jimmer-spring-boot-starter)

    Remove depreacate method pager and nested type Pager

  • JSqlClient (jimmer-sql), KSqlClient (jimmer-sql-kotlin)

    Add method findOneById to query non-null object, if there is no existing object, an exception will be raised

  • KSqlClient*(jimmer-sql)*

    • Add shortcut functions such as executeQuery, executeUpdate, executeDelete and findAll(..., <lambda>)

    • Add extension function exists

  • Associations (jimmer-sql), KAssociations (jimmer-sql-kotlin)

    • checkExistence is renamed to ingoreConflict

    • Add shortcut methods: insert, insertIfAbsent, replace, insertAll, insertAllIfAbsent and replaceAll

  • KWeakJoin (jimmer-sql-kotlin)

    Add a new method with a new parameter to support sub query.

  • AnnotationProcessor (jimmer-apt)

    The generated util class Objects is renamed to Immutables by default.

v0.8.186

09 Oct 13:43
Compare
Choose a tag to compare

Keep it consistent with Sber's speech

v0.8.130

05 May 20:09
Compare
Choose a tag to compare
  1. Fix/Support #502, #3, #507, #511, #512, #513, #519, #521, #522, #523, #524, #525, #528, #530, #537, #531, #539, #541, #550, #551, #557

  2. ScalarProvider becomes interface, a new class AbstractScalarProvider is provided.

  3. Fixed bug raised when both paging query and global filter are used.

  4. 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.

  5. Better join type deciding for dynamic predicate.

  6. Replace jackson serializataion/deserialization of immutable objects, now it allows user to use any advanced feature of jackson.

  7. Types decorated by @Embeddable and @Immutable can be mapped by DTO language.

  8. Avoid to use ctx.getBeansOfType of spring framework which ignores the exceptions during object creating.

  9. Let nullable properties of input DTO support 4 modifiers: fixed, static, dynamic, fuzzy.

  10. Logical deleted flag is automatically excluded from allScalars(Both fetcher and DTO language)

  11. User annotation @ExcludedFromAllScalars which allows any properties can be excluded from allScalars(Both fetcher and DTO language)

v0.8.116

31 Mar 01:39
Compare
Choose a tag to compare
  1. 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

  2. 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}" }
  1. Support ImmutableCompanion for kotlin

    @Entity
    

interface TreeNode {
... omit properties...
companion object: ImmutableCompanion
}
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

  1. Fixes/Support: #478, #490, #493, #494

  2. Fixed the bug that embeddable does not use flat mode in specification of DTO language

  3. 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"
}
  1. Update the Discord Link to a link that does not expire

v0.8.114

24 Mar 23:34
Compare
Choose a tag to compare
  1. Fix/Provide #449#451#452#453, #466, #468, #469, #471, #473, #474, #476
  2. Fix a bug of jimmer-graphql
  3. Properties in embeddable type can be handled by both ObjectFetcher and DTO language
  4. Nested flat is supported in DTO language
  5. Partial embeddable type is supported by save-command
  6. Formula property of entity can depend on nested properties of embeddable type
  7. Embeddable type supports formula properties
  8. @JoinTable supports cascadeDeletedBySource and cascadeDeletedByTarget
  9. DTO language supports interface implementation