@harawata harawata released this Mar 11, 2018 · 187 commits to master since this release

Assets 3

Enhancements:

  • Apply custom ResultHandler to CURSOR type OUT parameter. #493
  • Substitute variables in attribute values of included SQL fragments. #1069
  • BatchExecutor now closes each statement immediately after execution. #1110
  • It is now possible to use a static method as SQL provider. #1131
  • SQL provider method can now return CharSequence instead of String. #1134
  • Add resource path to the exception message when parsing XML mapper failed. #1172

Bug fixes:

  • Registering type handler against HashMap causes ClassCastException. #1089
  • Unable to register TypeHandler once TypeHandlerRegistry.hasTypeHandler is called. #1177
  • Serializing and deserializing cached objects causes NullPointerException. #1084
  • Invalid error message 'Two methods with same method signature but not providing classes assignable?' in System.err. #929

There should be no backward incompatible change since 3.4.5.
Follow this link to see the full list of changes.

@harawata harawata released this Aug 20, 2017 · 282 commits to master since this release

Assets 3

Enhancements:

  • Make default enum type handler customizable. #971
  • Make mapper method and its interface type accessible to SqlProvider. #1055
  • Allow using configuration properties in SqlProvider. #1061
  • Merge type handlers for JSR-310 (Java Date and Time API) into the core. #974

Bug fixes:

  • The type handler registered for a common interface of enums was not applied correctly. #976
  • Lazy loading should not overwrite a property value set by user. #988
  • Prevent foreach xml tag from polluting the global context. #966
  • Some parameter names (e.g. 'size') can cause ClassCastException. #1031
  • Not all result sets are processed when UPDATE or INSERT is performed in between. #1036
  • With PostgreSQL, ExecutorException is thrown if useGeneratedKeys is enabled globally. #902

There should be no backward incompatible change since 3.4.4.
Follow this link to see the full list of changes.

@harawata harawata released this Apr 8, 2017 · 394 commits to master since this release

Assets 3

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.

@harawata harawata released this Apr 7, 2017 · 396 commits to master since this release

Assets 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.

@harawata harawata released this Jan 3, 2017 · 461 commits to master since this release

Assets 3

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.

@harawata harawata released this Jun 26, 2016 · 644 commits to master since this release

Assets 3

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.

@emacarron emacarron released this Apr 19, 2016 · 743 commits to master since this release

Assets 2

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.

See the details at https://github.com/mybatis/mybatis-3/issues?q=milestone%3A3.4.0+is%3Aclosed

@emacarron emacarron released this May 23, 2015 · 1014 commits to master since this release

Assets 3

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>