Lazy Load per result
--------------------
Key: IBATIS-245
URL: http://issues.apache.org/jira/browse/IBATIS-245
Project: iBatis for Java
Type: New Feature
Components: SQL Maps
Versions: 2.1.5, 2.1.6
Environment: Any
Reporter: S Boyd
I have a need for the lazy load property on a per result basis. Since it was
listed on the wish list for 2.1.5, I attempted to add it to ibatis 2.1.5
source. The global lazyload setting would be the default setting for all
results. If the default setting is not desirable for a particular result, then
you can override it by adding lazyLoad="true|false" to the result. In doing
so, I had to modify the sqlmap dtd and three java classes: SqlMapParser,
BasicResultMap, and BasicResultMapping.
SqlMapParser code additions:
368: parser.addNodelet("/sqlMap/resultMap/result", new Nodelet() {
// code skipped
379: String callback = childAttributes.getProperty("typeHandler");
380: String lazyLoad = childAttributes.getProperty("lazyLoad");
408: BasicResultMapping mapping = new BasicResultMapping();
409:mapping.setPropertyName(propertyName);
mapping.setColumnName(columnName);
mapping.setJdbcTypeName(jdbcType);
mapping.setTypeHandler(handler);
mapping.setNullValue(nullValue);
mapping.setStatementName(statementName);
mapping.setNestedResultMapName(resultMapName);
if(lazyLoad != null && lazyLoad.length() > 0){
mapping.setLazyLoad("true".equals(lazyLoad));
}
else{ // use global lazy load setting
mapping.setLazyLoad(vars.client.getDelegate().isLazyLoadingEnabled());
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira