Skip to content

Releases: mybatis/mybatis-3

mybatis-3.4.4

08 Apr 04:18
Compare
Choose a tag to compare

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

07 Apr 19:23
Compare
Choose a tag to compare

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

03 Jan 16:27
Compare
Choose a tag to compare

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

26 Jun 05:12
Compare
Choose a tag to compare

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

19 Apr 14:10
Compare
Choose a tag to compare

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

13 Feb 22:19
Compare
Choose a tag to compare

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

23 May 23:41
Compare
Choose a tag to compare

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

11 Oct 05:19
Compare
Choose a tag to compare

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

06 Apr 19:57
Compare
Choose a tag to compare

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

24 Mar 08:06
Compare
Choose a tag to compare

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.