[ http://issues.apache.org/jira/browse/IBATIS-277?page=all ] Jeff Butler closed IBATIS-277: ------------------------------
Fix Version: 2.2.0 Resolution: Fixed Fixed (and documented) in SVN. > selectKey execution order attribute > ----------------------------------- > > Key: IBATIS-277 > URL: http://issues.apache.org/jira/browse/IBATIS-277 > Project: iBatis for Java > Type: Improvement > Components: SQL Maps > Versions: 2.1.7 > Environment: Any > Reporter: Jamison > Assignee: Jeff Butler > Fix For: 2.2.0 > > I did some poking around and found that iBatis for .NET has a 'type' > attribute for the selectKey element that controls when the selectKey is > executed. It would be beneficial to me if this attribute was introduced > (possible values pre or post) because it would reduce changing the order of > execution changing a property in an included property file instead of a > rather painful process that requires a lot of manual intervention. > The following code would do it I think, but I have not actually tested it > since I don't have an iBatis dev env set up.. please forgive my laziness. > Line 301 of com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser: > if (selectKeyStatement != null) { > Properties attributes = NodeletUtils.parseAttributes(node, vars.properties); > String keyType = attributes.getProperty("type", foundTextFirst ? "post" : > "pre"); > // I think I should throw an exception if it is not pre or post... > if (!(keyType.equlas("pre") || keyType.equlas("post"))){ > throw new SqlMapException("Error. selectKey type attribute value > invalid: " + keyType); > } > selectKeyStatement.setAfter(keyPropName.equals("post")); > } > Of course the DTD would need to be changed too: > <!ELEMENT selectKey (#PCDATA | include)*> > <!ATTLIST selectKey > resultClass CDATA #IMPLIED > keyProperty CDATA #IMPLIED > type CDATA #IMPLIED > > > It is a truly minute code change and it would save my team an incredible > amount of very error-prone work. -- 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