daobab-core

Daobab - Java ORM, Object Oriented SQL for Java and Kotlin

Stars
37
Committers
1

Bot releases are visible (Hide)

daobab-core - 1.8 Latest Release

Published by KlaudiuszWojtkowiak 11 months ago

  • Immutable entities

Since this moment Entities are immutable. As a result of every object chang (by settter), a new instance is being created. Immutable objects may be easy cloned by the reference duplication. Because of that, Daobab Entities are fully tread-safe.

  • Frozen queries

Every query (Daobab object) may be 'frozen'. After this operation, the query cannot be modified (until unfreeze).
Frozen queries are extremely quick. Like a regural native queries.
This kind of queries however, still accepts dynamic parameters (like JPA Repository does).
Daobab "native" queries, so those where you provides the sql, are also frozed from now. It's possible to use parameters on them as well.

  • ultra-fast Json convertion

really fast internal Json conversion. Daobab uses the information he has about the field types to make the json conversion very efficient.

  • Internal TypeConverters

responsible for conversion from database object to any Java type

  • Introduced REPLACE INTO

insert but on duplicated records only

  • Introduced on duplicated key update

actions when rows are duplicated

  • Insert for selected columns only

  • removed countAny and distinct methods from query objects

those operations are available as regural functions from now on

  • entities must have two contructors

Daobab revers engeenering creaed entities having double constructors. It speed up the internal immutable object creation.

  • Introduced ColumnCache - column interfaces are simplified and optimized

  • EntityRelation interface renamed to RelatedTo

  • massive internal refactoring and cleaning

daobab-core - 1.6

Published by KlaudiuszWojtkowiak almost 2 years ago

  • Kotlin support
    It's possible to execute a reverse engineering for Kotlin
    Daobab supports null safety types.
    Kotlin DataBaseTarget contains the entire tables instances. The dedicated *Tables interface is not needed anymore.
    Kotlin example project added to the repository.

  • Column interfaces needs a second type which is their field Type
    By introducing this change, it's possible to quickly change the type after reverencing engineering.
    In Kotlin it's used for nullability indicator - by using or removing a question mark.

  • The default date fields in java are based on java.time package not java.util as before

  • added MsSql support

  • Introduced TypeConverters. It's possible to have own datatypes. Daobab will dynamically convert it via YourType<-->DBType.

  • skip (QueryEntity) - selected columns won't be read for an entity.

  • only(QueryEntity) - only selected columns will be read for an entity.

  • compositeKeys - refactoring and improvements

  • fixed some functions

  • improved query generations

  • 'having' statement fixed