Monday, April 8, 2019

MyBatis 3.5.1 released!

Dear Community,

We are pleased to announce the release of MyBatis 3.5.1.
The below is the list of user visible changes.

Bug fixes:
  • keyProperty specified with parameter name could cause ExecutorException. #1485
  • False positive error 'Ambiguous collection type ...' . #1472
  • EnumTypeHandler is not used when the enum has methods. #1489
  • Auto-mapping fails in a result map referenced from a constructor arg with columnPrefix. #1496
  • Constructor auto-mapping could fail when columnPrefix is specified in the parent resultMap. #1495
  • LocalTimeTypeHandler loses fractional seconds part. #1478
  • LocalDateTypeHandler and LocalDateTimeTypeHandler could return unexpected value. #1478
  • You can now return 'script' from a SQL provider. The returned script is parsed using the language driver specified by @Lang. #1391
  • You can now omit method attribute from SQL provider annotations. #1279
  • You can now get databaseId in SQL providers. #1503
  • The default type handler for LONGVARCHAR is changed from ClobTypeHandler to StringTypeHandler. This improves compatibility with SAP ASE. #1484
There is one backward incompatible changes since 3.5.0.
  • Because of the fix for #1478 , LocalDateTypeHandler, LocalTimeTypeHandler and LocalDateTimeTypeHandler now require a JDBC driver that supports JDBC 4.2 API.
    [EDIT] These type handlers no longer work with Druid. Please see #1516 .
To see the full list of changes, please visit the 3.5.1 milestone page.
Binaries are available on the release page and Maven Central.

Thank you all for your contributions in various forms!

The MyBatis Team

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