Sunday, January 20, 2019

MyBatis 3.5.0 released!

Dear Community,

We are pleased to announce the release of MyBatis 3.5.0.
This version requires Java version 8 and later.

The below is the list of user visible changes.

  • Avoid 'Illegal reflective access' warning on JDK 9+. #1156
  • Added Automatic-Module-Name : org.mybatis #1199
  • Support java.util.Optional as return type of mapper method. #799
  • Avoid unnecessary wasNull() calls from the built-in type handlers. #1244
  • It is now possible to specify columnPrefix in constructor arguments. #968
  • Improved reliability when searching constructor for auto-mapping. #1277
  • It is now possible to access private, package private and protected members in OGNL expressions. #1258
  • Throw exception if the specified keyProperty is not found when assigning generated keys. #1250
  • Added a type handler for SQLXML data type. #1221
  • <set /> tag now trims the leading comma. #21
  • Infer <case /> tag's resultType from the enclosing resultMap. #486
  • Combination of @CacheNamespace and <cache-ref /> does not throw exception anymore. #1194
  • Support Log4J 2.6+. #1210
  • Slightly improved compatibility with drivers that only support JDBC 3 API. #1386
  • Upgraded testing framework to JUnit 5. #1425
Bug fixes:
  • OffsetDateTimeTypeHandler, OffsetTimeTypeHandler and ZonedDateTimeTypeHandler loses time zone information. #1081
  • Avoid SQLException when using Cursor with Db2. #1345
  • Avoid exception when using Cursor with ReuseExecutor. #1351
  • RowBounds with out-of-range offset causes SQLException on Db2. #1355
  • Specified logging implementation is not used in some classes. #1272
  • Unable to resolve javaType for <association />. #1381
  • Deeply nested (3+ levels) result map could cause IllegalArgumentException. #1176
  • Generic type parameter is not correctly resolved when the class hierarchy is deeper than 3 levels. #1260
Please be aware that there also are some backward incompatible changes since the last release 3.4.6.
  • Specifying keyProperty is now mandatory when using useGeneratedKeys. If you relied on the implicit default value (="id"), generated keys will be silently ignored. #1198
  • Using Cursor now requires a driver that supports JDBC 4.1 API. #1351
  • If you extended org.apache.ibatis.type.BaseTypeHandler, you might need to add wasNull() check in your type handler. #1244
  • The default resultSetType value has been changed from FORWARD_ONLY to UNSET. This is applied only to annotation based mappers (for XML based mappers, the default is/was UNSET). #1334
  • If you extended org.apache.ibatis.transaction.jdbc.JdbcTransaction for some reason, the property autoCommmit has been renamed to autoCommit. #941
Please see the 3.5.0 milestone page for the complete list of changes.
Binaries are available on the release page and Maven Central.

As always, we thank all contributors who reported issues, sent pull requests or participated in discussions!
And stay tuned for our sub-projects' updates!

The MyBatis Team

Sunday, October 14, 2018

MyBatis Migrations 3.3.5 released!

Dear Community,

We are pleased to announce the release of MyBatis-Migrations 3.3.5.

  • 'bofore_new' and 'after_new' hooks. #106
  • Print a warning when there is a skipped migration or a missing migration script. #125
Bug fixes:
  • Possible ArrayIndexOutOfBoundsException when reading a script. #127
  • 'script' command can generate incomplete script. #121
Follow this link to see the full list of changes.
Binaries are available on the release page and Maven Central.

Many thanks to those who reported issues, sent pull requests or participated in discussions!

The MyBatis Team

Tuesday, July 24, 2018

MyBatipse (Eclipse plugin) 1.1.2 is released!

Dear MyBatis - Eclipse users,

We have released version 1.1.2 of MyBatipse.

Two bug fixes and a new feature:
  • It now supports two or more XML mapper files having the same namespace. #86
  • Hyperlink now works in binary class editor. #84
  • Hyperlink now works on 'property' attribute of @Results. #85
Please see the GitHub page for the general information.

The next version of the plugin may require Java 8 and Eclipse 4.6 (Neon).


Wednesday, July 4, 2018

MyBatis Generator 1.3.7 Released

There is a new release of MyBatis Generator and a new version of the Eclipse feature is also available. This release has a few relatively minor bug fixes and enhancements - mainly related to minor issues with the new MyBatis Dynamic SQL support.

Important: after this release, Java 8+ will be required to run the generator, and support for iBatis 2 code generation will be removed.

Detailed information about the release is on GitHub here:
The artifacts are in Maven central now, and the Eclipse update site has the new version as well.

The Eclipse marketplace site is here:

Wednesday, April 25, 2018

MyBatis Dynamic SQL 1.1.0 Released

Dear Community,

We are pleased to announce the release of MyBatis Dynamic SQL Version 1.1.0.

This version has quite a few enhancements and two bug fixes. The most important enhancement is the addition of optional conditionals.  This support allows you to code a WHERE clause that can vary based on the input values to the conditions.  This can be very useful for coding searches where, for example, a conditional should only be rendered if the value is non-null.  This type of support has been requested for quite some time in code created from MyBatis Generator.  It wasn't feasible to do it with code generated in the old style, but is a natural addition to the MyBatis Dynamic SQL library.

You can find all the details on the GitHub release page.