重要提示: any implementation that subclasses the Ibator supplied class DefaultCommentGenerator does not need to change immediately with this release. The old methods have been deprecated and will be removed with the next release of Ibator - so subclasses should be reworked as soon as convenient.
There are several breaking changes between Ibator and Abator. This list details the changes, and has methods of resolving the differences.
Abator will generate these new methods:
A generator set is a set of code generators (SQL Map Generator, Java Model Generator, DAO Generator, and Java Type Resolver). Abator now ships three different generator sets. The generated code from these three generator sets is slightly different, and the use of the generated objects is slightly different too. The concepts are exactly the same. With the newer generator sets, the "by example" methods have been vastly improved. It is now possible to generate virtually any WHERE clause (including IN and BETWEEN predicates). Lastly, the new generator sets generate much more concise code - the DAOs and SQL Maps are of normal size, and there are no extraneous methods. The example class in the new generator sets encapsulates all the function needed to generate dynamic queries.
The three generator sets shipped with Abator are as follows:
重要: code generated with the Java2 or Java5 generator sets is not 100% compatible with code generated with the Legacy set - especially in the use of the "by example" methods. Also note that the "by example" methods in these generator sets rely on iBATIS dynamic SQL support that is missing in iBATIS versions prior to version 2.2.0.
A generator set is selected with the generatorSet attribute of the <abatorContext> element. See the <abatorContext> reference page for more information.
Use of the example classes is different with the different generator sets. See the Example Class Usage page for more information.
A model type is used to give you more control over the types of domain objects generated by Abator. Abator now supports three different types of domain models as follows:
Model types can be specified as a default for an entire context, and you may override the default for each table in a context. See the <abatorContext> reference page for more information about setting the context default.. See the <table> reference page for more information about setting a model type for specific tables.
重要: the default value is conditional - this is a non-backward compatible change from previous versions of Abator.
This is a new mapped SQL statement, and new DAO method, that will only update columns whose corresponding properties in the parameter class are non-null. This can be used to update certain columns in a record without needing to update the entire record.
重要: any column that is mapped to a primitive type will always be updated.