- MetaData - DatabaseTarget reads the real database structure during the initialization. It may be used for any kind of comparison between tables or to check, whether the currently generated classes are still complaint with the real schema.
it's possible to select over those data like on any other target.
- Statistics - every target may use statistic now.
You may access and query over the statistic collection, like on any other entity collection.
- Composites - a set of columns may be used as into queries for example to make quick whereEquals over many columns.
- PrimaryCompositeKey - PrimaryKeys on many columns.
- ByteBuffers - (unfinished) Daobab is able to work on structures outside the java Heap. It's a good solution for huge tables. Provides a huge performance gain.
- Improved Entities
- TableColumns - Every table has an unique characteristic into particular table. Information like size, nullable were missed before.
- Refactoring - some main Column methods names were changed.
- Generator improvements - Fixed problems with catalogs, prohibited names etc. Added massive generation of many catalogs/schemas. Some bugs has been tracked and fixed. A lot of new information are being printed.
- PlateBuffer became a regural target.
- AccessProtector has been greatly simplificated and refactored. Aplied to every target.
- RemoteTarget has been greatly simplifiated.
- Added manual single column generation.
- IdGenerator has been modified and simplified. Introduced a possibility to provide own in-code generator.
- static classes Select, Delete, Insert, Update has been pernamently removed. The only way to make queries, is to use target embedded methods.
- insert selects - to insert directly from select
- dual selects
- source code exposed on GitHub
- whole 'where' and 'having' methods were renamed. Method names indicates to relation between pointer and value. No need to import static Operator anymore.
- all kind of queries may start from QueryTarget, it will be a recommended way to build queries from now.
- new QueryTarget interface as a Target child - indicates target, which may be queried.
- introducing findOne(), findMany(), findFirst() - result type may be changed quickly, without changing the query. Method result() has been removed.
- Projection renamed to shorter and more intuitive Plate, ProjectionBox renamed to Plates, FlatProjection renamed to FlatPlate, FlatProjectionBox renamed to FlatPlates
- Upgraded and simplified in-memory buffer engines.
- Plates as QueryTarget (in-memory querying is possible over them)
- selects over special 'DUAL' table
- selects may contains another select as a function provider
- inserts may contains selects
- class package refactoring ,internal optimization, simplifying the code
- introducing experimental package with automatic join inside
- query translators were collected into a SqlQueryResolver class
- introducing QueryWhisperer - a big help into quick query building
- introducing FunctionWhisperer - eliminates static imports for functions
- columns() method into each entity class returns List<Column> type
- fixed EnhancedEntity default joinColumn() return value
- SQL set operators like union, except, intersect, minus were added
- simplified queries (Select.one and Select.many)
- Remote Targets (Server and Client)
- Optimistic Concurrency Control
- Rewritten SQL Functions
- some interfaces names were changes, refactoring
- fixed errors
First public release.
Totally new ORM approach, JPA independent.
Complete library includes a generator.