Releases: mybatis/mybatis-3
mybatis-3.4.4
This is no change since 3.4.3. Please see 3.4.3 release note
There was an error in the 3.4.3 JAR on Meven Central and we had to release 3.4.4 to fix it.
mybatis-3.4.3
Enhancements:
- Allow registering a type handler for a common interface of enums. #947
- Share Jdbc3KeyGenerator and NoKeyGenerator instances #882
- Building UPDATE JOIN statement by SQL Builder #903
Bug fixes:
- Failed to find a statement mapped to a super interface #481
- Default methods support on mappers, does not work for non-public mappers. #905
- foreignColumns with multiple columns validation error #526
- Fix wrong registration logic for LanguageDriver #914
- A boolean property should be able to have two getters: isX() and getX() #906
- Possible unexpected auto-mapping #895
- Excessive memory allocation for primitive arrays in nested resultmaps #927
There should be no backward incompatible change [1].
Follow this link to see the full list of changes.
[1] It is possible that an incorrect result mapping previously worked because of the bug fixed in #895 stops working. Please see #1100 for the details.
mybatis-3.4.2
Here is a list of major enhancements in MyBatis 3.4.2.
- New option 'returnInstanceForEmptyRow' to control the behavior when a query returns a row with all columuns being
null
. #800 - Support 'default methods' on mapper interfaces. #709
- When no type handler is registered to a class, a type handler registered to its superclass can be used. #859
- New attributes
properties
is added to@CacheNamespace
. #841 - New attributes
name
is added to@CacheNamespaceRef
. #842 - Support the mechanism for initializing a cache after set all properties. #816
- Allow users to set default value in placeholders. #852
- Auto-detecting type handlers newly added in version 1.0.2 of TypeHandlers-JSR310. #727 #878
Although it may be rare, the following changes could affect existing solutions.
- The default value of aggressiveLazyLoading is changed to
false
. #825 - Raise a exception when keyProperty is not found. #782
Follow this link to see the full list of changes.
mybatis-3.4.1
This release includes four user visible enhancements
- Allow referencing parameters by their declared names when compiled with Java 8
-parameters
option. #549 - Added auto-detection of Year/MonthTypeHandler added in mybatis-typehandlers-jsr310 1.0.1. #646
@Select
can now return an array of objects. #669- Allow specifying custom
reflectorFactory
in XML config. #657
and six bug fixes.
- Circularly referenced resultMap was filled with ancestor object even when columnPrefix was specified. #215
- Select statement with
@Param
couldn't be used as a nested select statement of association. #649 - RuntimeException was thrown at the startup on IBM WebSphere Application Server 8.5.5.9. #706
- Couldn't use Cursor as the return type of
@Select
statements. #661 - Couldn't use RowBounds as a parameter of select statement whose return type is Cursor. #667
- NullPointerException was thrown when used with Kylin JDBC driver. #699
Here is the complete list of changes.
mybatis-3.4.0
MyBatis 3.4.0 with the following main features:
- New Cursor List method in SqlSession.
- Inherit Spring timeout in transactions.
- Better support for generic types.
- Out-of-the-box support new Date and Time API (JSR-310) classes added in Java 8.
Note that there are changes that may break existing code.
- New method getTimeout() in the Transaction interface. If you implemented your own transaction adapter you will need to implement this method at least with a "return null"
- @options( flushCache ) now takes enum values (DEFAULT/TRUE/FALSE) instead of boolean.
- StatementHandler#prepare(Connection) has been changed to StatementHandler#prepare(Connection,Integer) given that now it gets the transaction timeout.
- SqlSession#selectCursor, Executor#queryCursor, ResultSetHandler#handleCursorResultSets and StatementHandler#queryCursor added. You will need to implement methods if you implemented those interfaces already.
See the details at https://github.com/mybatis/mybatis-3/issues?q=milestone%3A3.4.0+is%3Aclosed
mybatis-3.3.1
The first bug fix release for the 3.3.x branch.
See the details at https://github.com/mybatis/mybatis-3/issues?q=milestone%3A3.3.1
mybatis-3.3.0
Includes two main changes:
- Ognl has been upgraded to 3.0.11 that is the latest version
- The default proxy tool is now Javassist and is included inside the mybatis jar
There are some other minor changes and bug fixes. See the details at https://github.com/mybatis/mybatis-3/issues?q=milestone%3A3.3.0
Note that you can still use CGLIB as the proxy factory tool by adding CGLIB to your classpath and setting the MyBatis global parameter as follows:
<settings>
<setting name="proxyFactory" value="CGLIB"/>
</settings>
mybatis-3.2.8
See the details at https://github.com/mybatis/mybatis-3/issues?q=milestone%3A3.2.8
Yet another bug fix release. Provides 8 minor bug fixes.
mybatis-3.2.7
See the details at https://github.com/mybatis/mybatis-3/issues?milestone=8&state=closed
This release is a hotfix to solve the bug reported in #167 that broke the @one annotation in 3.2.6.
mybatis-3.2.6
See the details at https://github.com/mybatis/mybatis-3/issues?milestone=6&page=1&state=closed
Provides some new features:
- Caches nested selects
- Lazy loading can be enabled only for specific relations
- Supports returning multiple fields in a select key
- Some other minor improvements
A note for users who implemented their own caches or 3rd party cache adapters. MyBatis no longer calls Cache#getReadWriteLock(). Any locking needed by the cache should be implemented internally by the cache. So in case you coded your own cache make sure it is properly synchronized. See issue #159.