Features | O/R Broker | iBatis SQL Maps |
---|---|---|
Resolves circular referencesO/R Broker resolves any circular references, so there's no limitation on object design. |
||
Support for mapping through JavaBeans™ propertiesO/R Broker supports mapping of properties, but discourages exclusive use of the JavaBeans™ model due to the negative effects this has on object design. |
||
Support for mapping through constructorsO/R Broker supports instantiation of objects through multi-argument constructors. This allows immutable objects. |
||
Support for mapping through static factory methodsO/R Broker supports instantiation of objects through static factory methods. This is helpful when instantiating objects that either don't have a constructor, or has a certain requirement for factory methods. |
||
Support for mapping through multi-argument methodsO/R Broker supports mapping through arbitrary methods with multiple arguments to ensure consistent object state required by design. |
||
Support for mapping through instance fieldsO/R Broker supports mapping directly to instance fields. |
||
Support for mapping through
|
||
Supports individual SQL statement filesO/R Broker supports separation of SQL statements from the configuration file using individual files. This improves readability of the SQL code and reduces configuration file clutter. It also allows for multiple statement definitions, using the same dynamic SQL statement. |
||
Supports Java 1.3 or earlierO/R Broker requires Java 1.4 or later. |
||
Uses unchecked exceptionsO/R Broker wraps SQLExceptions in problem-specific unchecked exceptions for optional try/catch block and improved code readability. |
||
Has no required third party dependenciesO/R Broker has no external dependencies required to run. For dynamic runtime SQL statements, there's optional support for Velocity or FreeMarker, two commonly used template engines. |
||
Spring Framework integrationO/R Broker integrates easily with the Spring Framework's BeanFactory. |
||
Supports declarative and programmatic transaction isolation levelsO/R Broker allows you to declare a default transaction isolation level, and then override that programmatically when necessary. |
||
Can run without configuration fileO/R Broker can be used without a configuration file for JDBC like behavior, but with the benefit of named parameters. SQL statements can be added dynamically and result objects will be simple Maps. This is only recommended for prototyping and as an easy way to learn the API. |
||
Supports inheritance mappingO/R Broker supports dynamic mapping of entity inheritance hierarchies to their class counterparts. |
||
Has Savepoints supportO/R Broker has full support for Savepoints. |
||
Has caching supportO/R Broker does not support caching, other than caching per query and transaction, to resolve circular references. This is done to maintain thread safety. |
||
Transparent retry of stale connectionsO/R Broker automatically and transparently retries once any commands that throws an exception due to a stale connection. This typically happens when a database is shut down and connections in a connection pool remain logically open, but are physically closed. |
||
Automagic mapping of data typesO/R Broker will automagically map from any JDBC type to any Java type that is supported by JDBC, including using constructor calls. |