Release 2.5.0 - Release notes and updated website
This commit is contained in:
parent
22fd40c248
commit
0e309bc23e
@ -10,6 +10,151 @@ http://www.jooq.org/notes.php
|
||||
For a text version, see
|
||||
http://www.jooq.org/inc/RELEASENOTES.txt
|
||||
|
||||
Version 2.5.0 - August 26, 2012
|
||||
=================================================================
|
||||
|
||||
Welcome to another great database integration in jOOQ: Firebird!
|
||||
This is one of the more popular open source SQL databases out
|
||||
there, with a rich feature set, including the SQL standard MERGE
|
||||
statement.
|
||||
|
||||
Apart from this, the main new features are:
|
||||
|
||||
- Optimistic locking. jOOQ's UpdatableRecord API transparently
|
||||
implements optimistic locking on its store() and delete()
|
||||
methods. By default, the in-memory record is compared with the
|
||||
one in the database at write time. But you can also let jOOQ
|
||||
handle incremented VERSION or TIMESTAMP columns for you.
|
||||
- Oracle feature increment. Many nice Oracle features are now
|
||||
supported: user-defined aggregates, regular expressions,
|
||||
Oracle Text, CONNECT_BY_ROOT and ORDER SIBLINGS BY clausess,
|
||||
partitioned outer joins and more
|
||||
- jOOQ's convenience API has been greatly enhanced. This includes
|
||||
many improved fetch methods and new short forms for equal=eq,
|
||||
notEqual=ne, greaterThan=gt, etc. to better align jOOQ with
|
||||
JPA, XSL, QueryDSL and many other tools that abbreviate these
|
||||
keywords
|
||||
- Many types and methods have been deprecated to help you foresee
|
||||
the upcoming changes in jOOQ 3.0
|
||||
|
||||
Please consider also the updated manual with its new, more
|
||||
user-friendly structure
|
||||
|
||||
Features and improvements
|
||||
-------------------------
|
||||
#430 - Add support for the Firebird database
|
||||
#457 - Add support for Oracle user-defined AGGREGATE functions
|
||||
#620 - Add support for the SQL:2008 standard LIKE_REGEX operator
|
||||
#722 - Remove casting of bind values in Ingres
|
||||
#727 - Simulate RPAD and LPAD in SQLite
|
||||
#816 - Add support for Oracle Text functions
|
||||
#1339 - Add option to generate immutable pojos
|
||||
#1547 - Support "optimistic locking" in UpdatableRecord.store()
|
||||
and delete()
|
||||
#1552 - Generate fetchBy[ColumnName] methods in generated DAO
|
||||
classes
|
||||
#1553 - Add some Javadoc to document the difference between using
|
||||
a Factory with a Connection or with a DataSource
|
||||
#1556 - Add javax.validation API to full deliverable
|
||||
#1565 - Add Factory.connectByRoot(Field<?>) to support the Oracle
|
||||
CONNECT_BY_ROOT pseudo column
|
||||
#1570 - Add Factory.condition(String, QueryPart...) similar to
|
||||
Factory.field(String, QueryPart...)
|
||||
#1582 - Add support for Oracle's ORDER SIBLINGS BY clause, in
|
||||
combination with CONNECT BY
|
||||
#1586 - Add missing constructors taking DataSource to dialect-
|
||||
specific factories
|
||||
#1587 - Generate missing constructors taking DataSource in
|
||||
schema-specific factories
|
||||
#1595 - Simulate REPEAT() in SQLite
|
||||
#1596 - Add support for optimistic locking using generated
|
||||
information about "timestamp" or "version" columns
|
||||
#1627 - Handle NULL in CSV imports/exports
|
||||
#1645 - Add support for Oracle's PARTITION BY clause in OUTER
|
||||
JOINs
|
||||
#1657 - Reorganise the manual
|
||||
#1664 - By default, activate <relations/> in the code generator
|
||||
#1665 - Add support for the empty GROUP BY () clause
|
||||
#1675 - Add support for the SQL standard IS [NOT] DISTINCT FROM
|
||||
predicate
|
||||
#1680 - Overload all plain SQL DSL methods to also accept
|
||||
QueryPart arguments
|
||||
#1681 - Simulate empty GROUP BY () clause in Sybase ASE and
|
||||
Ingres, joining a dummy table and grouping by a constant
|
||||
field
|
||||
#1684 - Add <attachRecords/> Setting to indicate that fetched
|
||||
records shouldn't be automatically "attached"
|
||||
#1685 - Improve Javadoc of Attachable.attach(). Document how
|
||||
"detaching" works
|
||||
#1688 - Add <E> E Record.into(E) as a complement to
|
||||
<E> E Record.into(Class<E>)
|
||||
#1692 - Replace Factory.executeInsert(), Factory.executeUpdate()
|
||||
and similar methods with more succinct variants
|
||||
#1696 - Add short versions of comparison predicate methods, such
|
||||
as eq, ne, gt, ge, lt, le
|
||||
#1698 - Add support for the SQL standard BETWEEN SYMMETRIC
|
||||
predicate
|
||||
#1701 - Add Factory.not(Condition) as a synonym for
|
||||
Condition.not()
|
||||
#1704 - Document the behaviour of Factory.newRecord(Table<?>,
|
||||
Object) and Record.from(Object) with respect to
|
||||
UpdatableRecord.store()
|
||||
#1707 - Add <K> Map<K, Result<R>> ResultQuery.fetchGroups(
|
||||
Field<K>) and Result.intoGroups(Field<K>)
|
||||
#1712 - Add <T extends Comparable<? super T>> Result.sortAsc,
|
||||
.sortDesc(Field<T>)
|
||||
#1713 - Add <T> Result.sortAsc, .sortDesc(Field<T>,
|
||||
Comparator<? super T>)
|
||||
#1714 - Add Result.sortAsc, .sortDesc(Comparator<? super R>)
|
||||
#1718 - Document usage of InvalidResultException on the
|
||||
ResultQuery.fetchXXX() Javadocs
|
||||
#1721 - Add <K, V> Map<K, List<V>> ResultQuery.fetchGroups(
|
||||
Field<K>, Field<V>) and Result.intoGroups(Field<K>,
|
||||
Field<V>)
|
||||
#1722 - ResultQuery.fetchArray(int) and .fetchArray(String)
|
||||
should return a typed array, even if this cannot be
|
||||
checked by the compiler
|
||||
#1723 - Add Factory.fetchLazy(ResultSet)
|
||||
|
||||
API changes (backwards-compatible)
|
||||
----------------------------------
|
||||
#1544 - Remove Attachable interface from QueryPart hierarchy
|
||||
#1579 - Deprecate org.jooq.Type
|
||||
#1580 - Deprecate org.jooq.SchemaProvider
|
||||
#1638 - Deprecate org.jooq.ArrayRecord.createArray()
|
||||
#1639 - Deprecate org.jooq.Adapter
|
||||
#1687 - Let Cursor.fetchInto(Table<Z>) return Result<Z> instead
|
||||
of List<Z>
|
||||
#1736 - Deprecate TableRecord.{store|refresh|delete}Using()
|
||||
methods as being part of jOOQ's internal API
|
||||
#1741 - Deprecate org.jooq.MasterDataType
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
#1572 - Use Thread.currentThread().getContextClassLoader() to
|
||||
load ExecuteListener classes as a workaround for
|
||||
experienced class loading problems when using OSGi
|
||||
#1584 - Code generation error with Oracle UDT static functions
|
||||
#1632 - Improve the performance of various DefaultRenderContext
|
||||
methods, by locally caching Settings values
|
||||
#1633 - Improve the performance of CursorImpl.CursorIterator by
|
||||
setting Record values by index rather than by Field
|
||||
#1635 - Improve the performance of Factory.fetch(ResultSet) by
|
||||
caching data type normalisation regex in FieldTypeHelper
|
||||
#1650 - jOOR Fix #16: Can't call Reflect.create(A, B, null)
|
||||
#1660 - Factory.renderContext().castMode(CastMode.NEVER)
|
||||
.render(query) doesn't work. CastMode is not applied
|
||||
#1667 - Bad variable binding when NULLS FIRST, NULLS LAST is
|
||||
simulated in SQL Server and other databases
|
||||
#1673 - Result.formatXML() and Result.intoXML() do not render
|
||||
namespaces correctly
|
||||
#1683 - Oracle code generation regression for 10g. No such column
|
||||
ALL_PROCEDURES.OBJECT_ID
|
||||
#1693 - Cannot bind UDT values from other schemata to stored
|
||||
procedures
|
||||
#1730 - Compilation errors in SQLite generated code when flag
|
||||
<instanceFields/> is set to true
|
||||
|
||||
Version 2.4.0 - July 8, 2012
|
||||
=================================================================
|
||||
|
||||
|
||||
@ -65,13 +65,13 @@ p {
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
td.left {
|
||||
td.left, th.left {
|
||||
padding-right: 5px;
|
||||
padding-bottom: 5px;
|
||||
vertical-align: top;
|
||||
text-align: right;
|
||||
}
|
||||
td.right {
|
||||
td.right, th.right {
|
||||
padding-left: 5px;
|
||||
padding-bottom: 5px;
|
||||
vertical-align: top;
|
||||
|
||||
@ -31,38 +31,78 @@ running. It shows how to use jOOQ and its code generator with a simple MySQL dat
|
||||
|
||||
<td valign="top" width="50%">
|
||||
<h2>Documentation</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="<?=$root?>/manual-single-page" title="The jOOQ Manual on one single page">A single-paged HTML manual</a>
|
||||
</li>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th width="80" class="right">Version</th>
|
||||
<th class="right">Javadoc</th>
|
||||
<th class="right">Manual</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="right">2.5.0</td>
|
||||
<td class="right">
|
||||
<a style="padding-right: 20px" href="http://www.jooq.org/javadoc/latest/" title="The jOOQ Javadoc">HTML</a>
|
||||
</td>
|
||||
<td class="right">
|
||||
<a style="padding-right: 20px" href="<?=$root?>/doc/2.5/manual-single-page" title="The jOOQ Manual on one single page">HTML</a>
|
||||
<a style="padding-right: 20px" href="<?=$root?>/doc/2.5/manual" title="The jOOQ Manual on multiple pages">HTML (multi-page)</a>
|
||||
<a style="padding-right: 20px" href="<?=$root?>/doc/2.5/manual-pdf/jOOQ-manual-2.5.pdf" title="The jOOQ Manual as a PDF">PDF</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<li>
|
||||
<a href="<?=$root?>/manual" title="The jOOQ Manual on multiple pages">A multi-paged HTML manual</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="<?=$root?>/manual-pdf/jOOQ-manual.pdf" title="The jOOQ Manual as a PDF">A downloadable PDF manual</a>
|
||||
</li>
|
||||
<tr>
|
||||
<td class="right">2.4.0</td>
|
||||
<td class="right">
|
||||
<a style="padding-right: 20px" href="http://www.jooq.org/javadoc/2.4.x/" title="The jOOQ Javadoc">HTML</a>
|
||||
</td>
|
||||
<td class="right">
|
||||
<a style="padding-right: 20px" href="<?=$root?>/manual-single-page" title="The jOOQ Manual on one single page">HTML</a>
|
||||
<a style="padding-right: 20px" href="<?=$root?>/manual" title="The jOOQ Manual on multiple pages">HTML (multi-page)</a>
|
||||
<a style="padding-right: 20px" href="<?=$root?>/manual-pdf/jOOQ-manual.pdf" title="The jOOQ Manual as a PDF">PDF</a>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<h2>Javadoc</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="http://www.jooq.org/javadoc/latest/" title="The latest jOOQ Javadoc">The latest jOOQ Javadoc</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.jooq.org/javadoc/2.3.x/" title="The latest jOOQ Javadoc">jOOQ 2.3.x</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.jooq.org/javadoc/2.2.x/" title="The latest jOOQ Javadoc">jOOQ 2.2.x</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.jooq.org/javadoc/2.1.x/" title="The latest jOOQ Javadoc">jOOQ 2.1.x</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.jooq.org/javadoc/2.0.x/" title="The latest jOOQ Javadoc">jOOQ 2.0.x</a>
|
||||
</li>
|
||||
<tr>
|
||||
<td class="right">2.3.0</td>
|
||||
<td class="right">
|
||||
<a style="padding-right: 20px" href="http://www.jooq.org/javadoc/2.3.x/" title="The jOOQ Javadoc">HTML</a>
|
||||
</td>
|
||||
<td class="right">
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="right">2.2.0</td>
|
||||
<td class="right">
|
||||
<a style="padding-right: 20px" href="http://www.jooq.org/javadoc/2.2.x/" title="The jOOQ Javadoc">HTML</a>
|
||||
</td>
|
||||
<td class="right">
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="right">2.1.0</td>
|
||||
<td class="right">
|
||||
<a style="padding-right: 20px" href="http://www.jooq.org/javadoc/2.1.x/" title="The jOOQ Javadoc">HTML</a>
|
||||
</td>
|
||||
<td class="right">
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="right">2.0.0</td>
|
||||
<td class="right">
|
||||
<a style="padding-right: 20px" href="http://www.jooq.org/javadoc/2.0.x/" title="The jOOQ Javadoc">HTML</a>
|
||||
</td>
|
||||
<td class="right">
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user