<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-370</id>
	<title>Nabble - iBATIS - User - Java</title>
	<updated>2009-12-19T22:06:32Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/iBATIS---User---Java-f370.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/iBATIS---User---Java-f370.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26861261</id>
	<title>Using Map as a parameter object</title>
	<published>2009-12-19T22:06:32Z</published>
	<updated>2009-12-19T22:06:32Z</updated>
	<author>
		<name>Joe Gooch</name>
	</author>
	<content type="html">Hi! I've been kicking around iBatis3 for a bit, and I'm running into an inconsistency I'd like to resolve.
&lt;br&gt;&lt;br&gt;For most of my DB Handling items I use CaseInsensitiveHashMaps. &amp;nbsp;It's less precise, but since our backend DB is case insensitive, it makes sense to follow through w/ the Java.
&lt;br&gt;&lt;br&gt;If I pass in a CaseInsensitiveHashMap, iBatis doesn't see it as such. &amp;nbsp;From looking at the source, it appears DynamicContext, when it finds any type of Map, merely does a putAll into its HashMap. &amp;nbsp;(which is case-sensitive) &amp;nbsp;Thus, my parameter object is really never consulted; instead, the values were taken, which means any decorators on that Map are silently discarded.
&lt;br&gt;&lt;br&gt;However, if I create a simple class, say MapHolder, with a getMap() method, which returns my CaseInsensitiveHashMap, I have no problems. &amp;nbsp;My guess is because it resolves map to getMap() via bean methods, and returns my original Map object. &amp;nbsp;So the get() method properly finds all mixed case keys.
&lt;br&gt;&lt;br&gt;I'm not sure how widespread this type of usage is... But it seems like an oversight to me.
&lt;br&gt;&lt;br&gt;As I see it, there are four ways I can fix this...
&lt;br&gt;1) Use my MapHolder everywhere. &amp;nbsp;However, this seems rather unnecessary... &amp;nbsp;I would think a get() call on the map is more efficient than a bean resolution and then a get()... &amp;nbsp;Probably not significantly so. &amp;nbsp;But it makes my code look inelegant and I have to use map.param everywhere to reference things, which would make it harder to transparently supply a bean later.
&lt;br&gt;2) Replace the empty ContextMap (bindings) with the actual passed in Map. &amp;nbsp;This provides other issues, for instance, casting without knowing the original Generics.... &amp;nbsp;Plus, I don't think iBatis should modify my original map, which it would do almost immediately. (By injecting _parameter)
&lt;br&gt;3) Extend the ContextMap definition such that a map can be provided as a delegate... Much the same way Defaults work in the java.util.Properties object. Any call to ContextMap.get would first consult itself. &amp;nbsp;If it finds a value, return it. &amp;nbsp;If it doesn't, then consult the &amp;quot;child&amp;quot; map (if non-null), and return any value found. &amp;nbsp;I'd also have to wrap containsKey and some other items.
&lt;br&gt;4) Provide some way to provide a Map decorator to DynamicContext... Or redefine the Context with one that uses a CaseInsensitiveHashMap natively...
&lt;br&gt;&lt;br&gt;&lt;br&gt;So... Certainly some options. &amp;nbsp;Opinions on which way to go?
&lt;br&gt;&lt;br&gt;Thanks.
&lt;br&gt;Joe
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26861261&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26861261&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Using-Map-as-a-parameter-object-tp26861261p26861261.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26845790</id>
	<title>Re: IBATUS - Fetching a List of List of Strings from the XML Mapping  - Help Needed</title>
	<published>2009-12-18T08:14:42Z</published>
	<updated>2009-12-18T08:14:42Z</updated>
	<author>
		<name>nmaves</name>
	</author>
	<content type="html">First off welcome to ibatis!&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Second please don&amp;#39;t use this email list for help topics like this.  You should use the &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26845790&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt; for normal question like this.  This allows others in the community to help.  I have included it in the reply to move this to the correct email list.&lt;/div&gt;

&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Your issue is that you are not setting your result class properly.  Ibatis will return a list of your resultClass because you are calling queryForList().  You need to set the resultClass to the actual class that your query returns.  It appears from the name of the select that you are looking for claims.  If you have a Claim object I would suggest using it as the result class.  If not a simple java.util.HashMap would work.  I would suggest going the first route and creating a POJO to hold each result and then harness the true mapping power of ibatis.&lt;/div&gt;

&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Nathan&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Fri, Dec 18, 2009 at 12:25 AM, shiva kumar &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26845790&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;shiva_kutts@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;

&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font:inherit&quot;&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;Hi All,&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;This is Sivakumar. I am working with a Struts based UI Application. I have a requirement to externalize all the SQL Queries from the DAO Classes to the XML Files using IBATIS Framework. I would need your assistance in solving an issue that i am facing while modifying the Queries. I am facing an issue in a particular method within A DAO  Class where the select query returns a List of List of Records in the Normal DAO Query. However i am not able to fetch this when i am using the IBAT&lt;i&gt;I&lt;/i&gt;S resultClass=&amp;quot;list&amp;quot;. Please find below the Method below and let me know your suggestions, so that I could fetch a list of List from the IBATIS XML File Mapping. It would be really helpful to me. &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; &lt;b&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;  &lt;/span&gt;Method before using IBATIS:&lt;/span&gt;&lt;/b&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt;&lt;/b&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;    public List findClaims(ClaimSearchCriteriaVO searchCriteriaVO, UserProfileVO userProfileVO) throws DAOException {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;List displayColumns = searchCriteriaVO.getDisplayColumns();&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;span&gt;  &lt;/span&gt;try{&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;      sql = prepareSQL(searchCriteriaVO.getDisplayColumns());&lt;br&gt;      sql.append(&amp;quot; FROM wrkenv01..WKTV_GP00_CLAIMS WHERE &amp;quot;);&lt;br&gt;

      sql.append(&amp;quot;USUS_ID = ? AND &amp;quot;);&lt;br&gt;      sql.append(&amp;quot;GP00_SESSION_ID = ? AND &amp;quot;);&lt;br&gt;      sql.append(&amp;quot;WEB_PAGE_IND = ? &amp;quot;);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;      if (searchCriteriaVO.getClaimSortColumn() != null &amp;amp;&amp;amp; !   searchCriteriaVO.getClaimSortColumn().equalsIgnoreCase(Constants.ASTRIX)) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;        sql.append(&amp;quot;ORDER BY &amp;quot; + searchCriteriaVO.getClaimSortColumn());&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;        if (searchCriteriaVO.getClaimSortOrder() != null &amp;amp;&amp;amp; searchCriteriaVO.getClaimSortOrder().equalsIgnoreCase(&amp;quot;D&amp;quot;)) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;          sql.append(&amp;quot; DESC &amp;quot;);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;        } else {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;          sql.append(&amp;quot; ASC &amp;quot;);&lt;br&gt;        }&lt;br&gt;      }&lt;br&gt;      pstmt = con.prepareStatement(sql.toString());&lt;br&gt;      sessionId = String.valueOf(userProfileVO.getSessionId()).trim();&lt;br&gt;

      pstmt.setString(1, userProfileVO.getUserId());&lt;br&gt;      pstmt.setString(2, sessionId);&lt;br&gt;      pstmt.setString(3, &amp;quot;S&amp;quot;); // WEB_PAGE_IND &amp;#39;S&amp;#39; for search&lt;br&gt;      rs = pstmt.executeQuery();&lt;br&gt;      searchResultList = new ArrayList();&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;      while (rs.next()) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;        rowList = new ArrayList();&lt;br&gt;        rowList.add(DaoUtil.trim(rs.getString(&amp;quot;DISPLAY_COLOR_IND&amp;quot;)));&lt;br&gt;        rowList.add(DaoUtil.trim(rs.getString(&amp;quot;CLCL_ID&amp;quot;)));&lt;br&gt;

        rowList.add(DaoUtil.trim(rs.getString(&amp;quot;PRPR_ID&amp;quot;)));&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;        if (displayColumns != null) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;          for (int displayColumnsIter = 0; displayColumnsIter &amp;lt; displayColumns.length; displayColumnsIter++) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;            rowList.add(DaoUtil.trim(rs.getString(displayColumns[displayColumnsIter])));&lt;br&gt;          }&lt;br&gt;        }&lt;br&gt;        searchResultList.add(rowList);&lt;br&gt;

      }&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;    } catch (SQLException ex) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;      m_logger.error(&amp;quot;SQLException in findClaims() :&amp;quot; + ex.getMessage());&lt;br&gt;      throw new DAOException(ex.getMessage());&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;    } finally {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;      AppDBUtil.closeQueryObjects(rs, pstmt, con);&lt;br&gt;    }&lt;br&gt;    return searchResultList;&lt;br&gt;  }&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;Method after using IBATIS: DAO.java file&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;public List findClaims(ClaimSearchCriteriaVO searchCriteriaVO, UserProfileVO userProfileVO) throws DAOException {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;    &lt;/span&gt;String[] displayColumns = null;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;    &lt;/span&gt;String claimSortColumn = null;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;    &lt;/span&gt;String claimSortOrder = null;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;    &lt;/span&gt;List searchResultList = null;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;    &lt;/span&gt;try {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;displayColumns = searchCriteriaVO.getDisplayColumns();&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;claimSortColumn = searchCriteriaVO.getClaimSortColumn();&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;claimSortOrder = DaoUtil.trim(searchCriteriaVO.getClaimSortOrder());&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;Map findClaimsMap = new HashMap();&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;findClaimsMap.put(&amp;quot;userID&amp;quot;, userProfileVO.getUserId());&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;String sessionId = String.valueOf(userProfileVO.getSessionId()).trim();&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;findClaimsMap.put(&amp;quot;sessionID&amp;quot;, sessionId);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;findClaimsMap.put(&amp;quot;webPageInd&amp;quot;, &amp;quot;S&amp;quot;);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;if (displayColumns != null) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;findClaimsMap.put(&amp;quot;displayColumns&amp;quot;, displayColumns);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;}&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;if (claimSortColumn != null &amp;amp;&amp;amp; !claimSortColumn.equalsIgnoreCase(Constants.ASTRIX)) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;System.out.println(&amp;quot;claimSortcolumn&amp;quot;+claimSortColumn);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;findClaimsMap.put(&amp;quot;claimSortColumn&amp;quot;, claimSortColumn);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;if (claimSortOrder != null) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;          &lt;/span&gt;findClaimsMap.put(&amp;quot;claimSortOrder&amp;quot;, claimSortOrder);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;} &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;}&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;SqlMapClient sqlMapQueryBuilder = AppUtil.getSQLMapQueryBuilder(m_logger, sqlMapConfigFile);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;searchResultList = sqlMapQueryBuilder.queryForList(&amp;quot;Claim.findClaims&amp;quot;, findClaimsMap);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;for (int i = 0; i &amp;lt; searchResultList.size(); i++){&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;List rowsList = (List) searchResultList.get(i);&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;        &lt;/span&gt;System.out.println(&amp;quot;rowsList &amp;quot;+rowsList.size()); // This should contain all the Column Values fetched from the Table. But this prints 0&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                                                     &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;}&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;    &lt;/span&gt;} catch (SQLException ex) {&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;m_logger.error(&amp;quot;SQLException in findClaims() :&amp;quot; + ex.getMessage());&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;throw new DAOException(ex.getMessage());&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;    &lt;/span&gt;} &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;    &lt;/span&gt;return searchResultList;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;  &lt;/span&gt;}&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;using IBATIS: Query.xml file&lt;/span&gt;&lt;/b&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&amp;lt;select id=&amp;quot;findClaims&amp;quot; resultClass=&amp;quot;list&amp;quot; &amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;     &lt;/span&gt;SELECT DISPLAY_COLOR_IND, CLCL_ID, PRPR_ID &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;&amp;lt;isPropertyAvailable property=&amp;quot;displayColumns&amp;quot;&amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                        &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;&amp;lt;iterate prepend =&amp;quot;,&amp;quot; property=&amp;quot;displayColumns&amp;quot; conjunction=&amp;quot;,&amp;quot;&amp;gt; &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                                    &lt;/span&gt;&lt;span&gt;  &lt;/span&gt;#displayColumns[]# &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                                    &lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&amp;lt;/iterate&amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                        &lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&amp;lt;/isPropertyAvailable&amp;gt; as claimsList &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                        &lt;/span&gt;&lt;span&gt; &lt;/span&gt;FROM wrkenv01..WKTV_GP00_CLAIMS WHERE &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt; &lt;/span&gt;USUS_ID = #userID# AND &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt; &lt;/span&gt;GP00_SESSION_ID = #sessionID# AND &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;         &lt;/span&gt;WEB_PAGE_IND = #webPageInd# &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;         &lt;/span&gt;&amp;lt;isPropertyAvailable property=&amp;quot;claimSortColumn&amp;quot; &amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;                                  &lt;/span&gt;ORDER BY $claimSortColumn$&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;                                  &lt;/span&gt;&amp;lt;isPropertyAvailable property=&amp;quot;claimSortOrder&amp;quot; &amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;                                  &lt;/span&gt;&amp;lt;isEqual property=&amp;quot;claimSortOrder&amp;quot; compareValue=&amp;quot;D&amp;quot;&amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                                                            &lt;/span&gt;&lt;span&gt; &lt;/span&gt;DESC &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                                    &lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;           &lt;/span&gt;&amp;lt;/isEqual&amp;gt; &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                                    &lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;           &lt;/span&gt;&amp;lt;isNotEqual property=&amp;quot;claimSortOrder&amp;quot; compareValue=&amp;quot;D&amp;quot;&amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                                                            &lt;/span&gt;&lt;span&gt; &lt;/span&gt;ASC &lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                                    &lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;           &lt;/span&gt;&amp;lt;/isNotEqual&amp;gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                        &lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;           &lt;/span&gt;&amp;lt;/isPropertyAvailable&amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;span&gt;                        &lt;/span&gt;&lt;span&gt; &lt;/span&gt;&amp;lt;/isPropertyAvailable&amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&amp;lt;/select&amp;gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black;font-family:&amp;#39;Courier New&amp;#39;&quot;&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black;font-family:&amp;#39;Courier New&amp;#39;&quot;&gt;&lt;span&gt;Could you please provide your expertise on this?&lt;/span&gt;&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black;font-family:&amp;#39;Courier New&amp;#39;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;&lt;/span&gt;  
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;Thanks,&lt;/span&gt; 
&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt; &lt;/span&gt;&lt;font color=&quot;#888888&quot;&gt; 
&lt;/font&gt;&lt;/p&gt;&lt;font color=&quot;#888888&quot;&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin:0in 0in 0pt&quot;&gt;&lt;span style=&quot;font-size:10pt;color:black&quot;&gt;Shiva&lt;/span&gt; &lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;hm&quot;&gt;&lt;br&gt;



      &lt;hr size=&quot;1&quot;&gt; 
The INTERNET now has a personality. YOURS! &lt;a href=&quot;http://in.rd.yahoo.com/tagline_yyi_1/*http://in.yahoo.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;See your Yahoo! Homepage&lt;/a&gt;.&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-IBATUS---Fetching-a-List-of-List-of-Strings-from-the-XML-Mapping----Help-Needed-tp26845790p26845790.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26845521</id>
	<title>Re: Stored Procedures iBatis version 3 beta</title>
	<published>2009-12-18T07:58:05Z</published>
	<updated>2009-12-18T07:58:05Z</updated>
	<author>
		<name>Clinton Begin</name>
	</author>
	<content type="html">You might want to check out the new documentation.  The new parameter format is:  #{param}, not #param#&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;gmail_quote&quot;&gt;On Fri, Dec 18, 2009 at 6:44 AM, JJ Stuart &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26845521&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jjstuart@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;blockquote style=&quot;BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex&quot; class=&quot;gmail_quote&quot;&gt;&lt;br&gt;I&amp;#39;m a newbie to iBatis and am currently trying to call a parameterised stored&lt;br&gt;procedure using v3.5 beta of iBatis.&lt;br&gt;
&lt;br&gt;The following mapping works with a hardcoded value&lt;br&gt;&lt;br&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br&gt;&amp;lt;!DOCTYPE mapper&lt;br&gt;PUBLIC &amp;quot;-//&lt;a href=&quot;http://ibatis.apache.org//DTD&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;ibatis.apache.org//DTD&lt;/a&gt; Mapper 3.0//EN&amp;quot;&lt;br&gt;
&amp;quot;&lt;a href=&quot;http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd&lt;/a&gt;&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;mapper namespace=&amp;quot;test.TestMapper&amp;quot;&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;       &amp;lt;select id=&amp;quot;selectAll&amp;quot; resultType=&amp;quot;LoadStageTest&amp;quot;&lt;br&gt;
parameterType=&amp;quot;java.lang.Integer&amp;quot;&amp;gt;&lt;br&gt;                       {call test_proc3 (102)}&lt;br&gt;                       &amp;lt;/select&amp;gt;&lt;br&gt;&amp;lt;/mapper&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;However if I then try to pass a value in using below (inline param)&lt;br&gt;
&lt;br&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br&gt;&amp;lt;!DOCTYPE mapper&lt;br&gt;PUBLIC &amp;quot;-//&lt;a href=&quot;http://ibatis.apache.org//DTD&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;ibatis.apache.org//DTD&lt;/a&gt; Mapper 3.0//EN&amp;quot;&lt;br&gt;&amp;quot;&lt;a href=&quot;http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd&lt;/a&gt;&amp;quot;&amp;gt;&lt;br&gt;
&amp;lt;mapper namespace=&amp;quot;test.TestMapper&amp;quot;&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;       &amp;lt;select id=&amp;quot;selectAll&amp;quot; resultType=&amp;quot;LoadStageTest&amp;quot;&lt;br&gt;parameterType=&amp;quot;java.lang.Integer&amp;quot;&amp;gt;&lt;br&gt;                       {call test_proc3 (#value#)}&lt;br&gt;
                       &amp;lt;/select&amp;gt;&lt;br&gt;&amp;lt;/mapper&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;i get the following error&lt;br&gt;&lt;br&gt;### Error querying database.  Cause:&lt;br&gt;com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error&lt;br&gt;
in your SQL syntax; check the manual that corresponds to your MySQL server&lt;br&gt;version for the right syntax to use near &amp;#39;&amp;#39; at line 1&lt;br&gt;&lt;br&gt;Any help appreciated,&lt;br&gt;&lt;br&gt;Many thanks&lt;br&gt;&lt;br&gt;Jonathan&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;
--&lt;br&gt;View this message in context: &lt;a href=&quot;http://old.nabble.com/Stored-Procedures-iBatis-version-3-beta-tp26843638p26843638.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Stored-Procedures-iBatis-version-3-beta-tp26843638p26843638.html&lt;/a&gt;&lt;br&gt;
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26845521&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26845521&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Stored-Procedures-iBatis-version-3-beta-tp26843638p26845521.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26843638</id>
	<title>Stored Procedures iBatis version 3 beta</title>
	<published>2009-12-18T05:44:56Z</published>
	<updated>2009-12-18T05:44:56Z</updated>
	<author>
		<name>JJ Stuart</name>
	</author>
	<content type="html">I'm a newbie to iBatis and am currently trying to call a parameterised stored procedure using v3.5 beta of iBatis.
&lt;br&gt;&lt;br&gt;The following mapping works with a hardcoded value
&lt;br&gt;&lt;br&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;&amp;lt;!DOCTYPE mapper
&lt;br&gt;PUBLIC &amp;quot;-//ibatis.apache.org//DTD Mapper 3.0//EN&amp;quot;
&lt;br&gt;&amp;quot;&lt;a href=&quot;http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;&amp;lt;mapper namespace=&amp;quot;test.TestMapper&amp;quot;&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;select id=&amp;quot;selectAll&amp;quot; resultType=&amp;quot;LoadStageTest&amp;quot; parameterType=&amp;quot;java.lang.Integer&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {call test_proc3 (102)}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;lt;/mapper&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;However if I then try to pass a value in using below (inline param)
&lt;br&gt;&lt;br&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;&amp;lt;!DOCTYPE mapper
&lt;br&gt;PUBLIC &amp;quot;-//ibatis.apache.org//DTD Mapper 3.0//EN&amp;quot;
&lt;br&gt;&amp;quot;&lt;a href=&quot;http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;&amp;lt;mapper namespace=&amp;quot;test.TestMapper&amp;quot;&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;select id=&amp;quot;selectAll&amp;quot; resultType=&amp;quot;LoadStageTest&amp;quot; parameterType=&amp;quot;java.lang.Integer&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {call test_proc3 (#value#)}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;lt;/mapper&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;i get the following error
&lt;br&gt;&lt;br&gt;### Error querying database. &amp;nbsp;Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
&lt;br&gt;&lt;br&gt;Any help appreciated,
&lt;br&gt;&lt;br&gt;Many thanks
&lt;br&gt;&lt;br&gt;Jonathan
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Stored-Procedures-iBatis-version-3-beta-tp26843638p26843638.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26827415</id>
	<title>Re: working with &quot;raw&quot; map&lt;k,v&gt;s instead of entities?</title>
	<published>2009-12-17T04:36:59Z</published>
	<updated>2009-12-17T04:36:59Z</updated>
	<author>
		<name>Kristian Rink-6</name>
	</author>
	<content type="html">Larry Meadors schrieb:
&lt;br&gt;&amp;gt; Not really a preferred way - it's going to be up to you to decide if
&lt;br&gt;&amp;gt; you want code or configuration.
&lt;br&gt;&lt;br&gt;I see. :)
&lt;br&gt;&lt;br&gt;&amp;gt; I think a row handler might be the best option in this case. So you
&lt;br&gt;&amp;gt; would have ibatis mapping all of your results to a Map, then in your
&lt;br&gt;&amp;gt; RowHandler, you'd take that row, and create the entity object, pluck
&lt;br&gt;&amp;gt; out the fixed values, then copy the rest to your entity's attributes
&lt;br&gt;&amp;gt; map.
&lt;br&gt;&lt;br&gt;But as far as I investigated things by now, I will still have to, say, 
&lt;br&gt;come up with some sort of mapping configuration telling which column 
&lt;br&gt;(id/name) to be stored in which key/property in java.util.Map? I can't, 
&lt;br&gt;like, in an sqlMap definition, &amp;quot;iterate&amp;quot; across all the columns found to 
&lt;br&gt;make sure each column gets stored in a Map entry with the same key, like ...
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // pseudocode
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;resultMap id=&amp;quot;mapResult&amp;quot; class=&amp;quot;java.util.HashMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;for &amp;quot;column&amp;quot; in &amp;quot;result.columns&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;$column&amp;quot; columnName=&amp;quot;$column&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/for&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&lt;br&gt;... ? This would make this project drastically easier. ;)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; You could probably create a RowHandler&amp;lt;Entity&amp;gt; sort of solution to do
&lt;br&gt;&amp;gt; that in a more general manner which would eliminate some redundant
&lt;br&gt;&amp;gt; code.
&lt;br&gt;&lt;br&gt;Yes, that's what comes to mind here. But I'm not half-way there yet I 
&lt;br&gt;guess. :)
&lt;br&gt;&lt;br&gt;&amp;gt; Sounds like it'd be a fun project. :)
&lt;br&gt;&lt;br&gt;Indeed. :/ The structure in this system, so far, has successfully kept 
&lt;br&gt;me from applying virtually any kind of available O/R mapping in a 
&lt;br&gt;meaningful way. OTOH however, the iBatis way is pretty straightforward 
&lt;br&gt;and easy-to-explain I guess so not having hibernate in here is not all 
&lt;br&gt;that bad after all. ;)
&lt;br&gt;&lt;br&gt;K.
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827415&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827415&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/working-with-%22raw%22-map%3Ck%2Cv%3Es-instead-of-entities--tp26824790p26827415.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26827346</id>
	<title>Re: working with &quot;raw&quot; map&lt;k,v&gt;s instead of entities?</title>
	<published>2009-12-17T04:31:42Z</published>
	<updated>2009-12-17T04:31:42Z</updated>
	<author>
		<name>Larry Meadors</name>
	</author>
	<content type="html">Not really a preferred way - it's going to be up to you to decide if
&lt;br&gt;you want code or configuration.
&lt;br&gt;&lt;br&gt;I think a row handler might be the best option in this case. So you
&lt;br&gt;would have ibatis mapping all of your results to a Map, then in your
&lt;br&gt;RowHandler, you'd take that row, and create the entity object, pluck
&lt;br&gt;out the fixed values, then copy the rest to your entity's attributes
&lt;br&gt;map.
&lt;br&gt;&lt;br&gt;You could probably create a RowHandler&amp;lt;Entity&amp;gt; sort of solution to do
&lt;br&gt;that in a more general manner which would eliminate some redundant
&lt;br&gt;code.
&lt;br&gt;&lt;br&gt;Sounds like it'd be a fun project. :)
&lt;br&gt;&lt;br&gt;Larry
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Thu, Dec 17, 2009 at 5:20 AM, Kristian Rink &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827346&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lists@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Larry Meadors schrieb:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Interesting idea - so you end up with something like this?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; myEntity.id
&lt;br&gt;&amp;gt;&amp;gt; myEntity.name
&lt;br&gt;&amp;gt;&amp;gt; myEntity.attributes.someField
&lt;br&gt;&amp;gt;&amp;gt; myEntity.attributes.someOtherField
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Yes, that's basically what it is supposed to be. Reason for this: We're, in
&lt;br&gt;&amp;gt; the backend, using a legacy (proprietary :( ) document management system
&lt;br&gt;&amp;gt; which has a somewhat &amp;quot;dynamic&amp;quot; RDBMS database / table structure which is
&lt;br&gt;&amp;gt; subject to extension pretty often, so, asides a couple of &amp;quot;fixed&amp;quot; values
&lt;br&gt;&amp;gt; (id, name, ...), the &amp;quot;dynamic&amp;quot; approach of having everything else in a Map
&lt;br&gt;&amp;gt; or a Properties object so far has proven to be the most straightforward
&lt;br&gt;&amp;gt; solution.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; You could do that, but since you're doing &amp;quot;select *&amp;quot; you'd have to do
&lt;br&gt;&amp;gt;&amp;gt; it with a result map or row handler.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hmmm... is there a &amp;quot;preferred way among these both and/or quick howtos? I
&lt;br&gt;&amp;gt; already stumbled across the RowHandler but, so far, am unsure how to
&lt;br&gt;&amp;gt; correctly apply this one... I'm using iBatis in a Spring 2.x environment,
&lt;br&gt;&amp;gt; btw. :)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; TIA and all the best,
&lt;br&gt;&amp;gt; Kristian
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827346&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827346&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827346&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827346&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/working-with-%22raw%22-map%3Ck%2Cv%3Es-instead-of-entities--tp26824790p26827346.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26827230</id>
	<title>Re: working with &quot;raw&quot; map&lt;k,v&gt;s instead of entities?</title>
	<published>2009-12-17T04:20:08Z</published>
	<updated>2009-12-17T04:20:08Z</updated>
	<author>
		<name>Kristian Rink-6</name>
	</author>
	<content type="html">Larry Meadors schrieb:
&lt;br&gt;&amp;gt; Interesting idea - so you end up with something like this?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; myEntity.id
&lt;br&gt;&amp;gt; myEntity.name
&lt;br&gt;&amp;gt; myEntity.attributes.someField
&lt;br&gt;&amp;gt; myEntity.attributes.someOtherField
&lt;br&gt;&lt;br&gt;Yes, that's basically what it is supposed to be. Reason for this: We're, 
&lt;br&gt;in the backend, using a legacy (proprietary :( ) document management 
&lt;br&gt;system which has a somewhat &amp;quot;dynamic&amp;quot; RDBMS database / table structure 
&lt;br&gt;which is subject to extension pretty often, so, asides a couple of 
&lt;br&gt;&amp;quot;fixed&amp;quot; values (id, name, ...), the &amp;quot;dynamic&amp;quot; approach of having 
&lt;br&gt;everything else in a Map or a Properties object so far has proven to be 
&lt;br&gt;the most straightforward solution.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; You could do that, but since you're doing &amp;quot;select *&amp;quot; you'd have to do
&lt;br&gt;&amp;gt; it with a result map or row handler.
&lt;br&gt;&lt;br&gt;Hmmm... is there a &amp;quot;preferred way among these both and/or quick howtos? 
&lt;br&gt;I already stumbled across the RowHandler but, so far, am unsure how to 
&lt;br&gt;correctly apply this one... I'm using iBatis in a Spring 2.x 
&lt;br&gt;environment, btw. :)
&lt;br&gt;&lt;br&gt;TIA and all the best,
&lt;br&gt;Kristian
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827230&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827230&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/working-with-%22raw%22-map%3Ck%2Cv%3Es-instead-of-entities--tp26824790p26827230.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26827111</id>
	<title>Re: working with &quot;raw&quot; map&lt;k,v&gt;s instead of entities?</title>
	<published>2009-12-17T04:08:46Z</published>
	<updated>2009-12-17T04:08:46Z</updated>
	<author>
		<name>Larry Meadors</name>
	</author>
	<content type="html">Interesting idea - so you end up with something like this?
&lt;br&gt;&lt;br&gt;myEntity.id
&lt;br&gt;myEntity.name
&lt;br&gt;myEntity.attributes.someField
&lt;br&gt;myEntity.attributes.someOtherField
&lt;br&gt;&lt;br&gt;You could do that, but since you're doing &amp;quot;select *&amp;quot; you'd have to do
&lt;br&gt;it with a result map or row handler.
&lt;br&gt;&lt;br&gt;Larry
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Thu, Dec 17, 2009 at 1:32 AM, Kristian Rink &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827111&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lists@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Folks;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; not sure whether this is a stupid question; I've been playing with this idea
&lt;br&gt;&amp;gt; before already: As far as I see, after dealing with a bunch of other
&lt;br&gt;&amp;gt; approaches (EclipseLink/JPA, hibernate, ...), I saw that in the end parts of
&lt;br&gt;&amp;gt; our backend code ended up being a &amp;quot;weak re-implementation&amp;quot; of the iBatis
&lt;br&gt;&amp;gt; idea, which makes me reconsider iBatis once again. For now, looking at the
&lt;br&gt;&amp;gt; feature set, there is one thing I would want to do with iBatis, but I am not
&lt;br&gt;&amp;gt; sure how to do so / whether it can be done at all:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In my situation, I select * from a bunch of tables joined via an identifier,
&lt;br&gt;&amp;gt; to, by then, take the identifier and a few other &amp;quot;fixed&amp;quot; columns which will
&lt;br&gt;&amp;gt; appear all the time and put them into designated values of an entity, and
&lt;br&gt;&amp;gt; the &amp;quot;rest&amp;quot; of the selection simply goes to a Map&amp;lt;string,string&amp;gt; inside the
&lt;br&gt;&amp;gt; entity. While this works pretty well, say, inside a Spring JdbcTemplate
&lt;br&gt;&amp;gt; mapper, I am unsure how / if to do something like this in an iBatis
&lt;br&gt;&amp;gt; configuration file as well. So to ask:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; - Is it possible?
&lt;br&gt;&amp;gt; - How to do it, if so?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks a bunch in advance and kindest regards,
&lt;br&gt;&amp;gt; Kristian
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827111&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827111&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827111&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827111&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/working-with-%22raw%22-map%3Ck%2Cv%3Es-instead-of-entities--tp26824790p26827111.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26824790</id>
	<title>working with &quot;raw&quot; map&lt;k,v&gt;s instead of entities?</title>
	<published>2009-12-17T00:32:44Z</published>
	<updated>2009-12-17T00:32:44Z</updated>
	<author>
		<name>Kristian Rink-6</name>
	</author>
	<content type="html">Folks;
&lt;br&gt;&lt;br&gt;not sure whether this is a stupid question; I've been playing with this 
&lt;br&gt;idea before already: As far as I see, after dealing with a bunch of 
&lt;br&gt;other approaches (EclipseLink/JPA, hibernate, ...), I saw that in the 
&lt;br&gt;end parts of our backend code ended up being a &amp;quot;weak re-implementation&amp;quot; 
&lt;br&gt;of the iBatis idea, which makes me reconsider iBatis once again. For 
&lt;br&gt;now, looking at the feature set, there is one thing I would want to do 
&lt;br&gt;with iBatis, but I am not sure how to do so / whether it can be done at all:
&lt;br&gt;&lt;br&gt;In my situation, I select * from a bunch of tables joined via an 
&lt;br&gt;identifier, to, by then, take the identifier and a few other &amp;quot;fixed&amp;quot; 
&lt;br&gt;columns which will appear all the time and put them into designated 
&lt;br&gt;values of an entity, and the &amp;quot;rest&amp;quot; of the selection simply goes to a 
&lt;br&gt;Map&amp;lt;string,string&amp;gt; inside the entity. While this works pretty well, say, 
&lt;br&gt;inside a Spring JdbcTemplate mapper, I am unsure how / if to do 
&lt;br&gt;something like this in an iBatis configuration file as well. So to ask:
&lt;br&gt;&lt;br&gt;- Is it possible?
&lt;br&gt;- How to do it, if so?
&lt;br&gt;&lt;br&gt;Thanks a bunch in advance and kindest regards,
&lt;br&gt;Kristian
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824790&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824790&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/working-with-%22raw%22-map%3Ck%2Cv%3Es-instead-of-entities--tp26824790p26824790.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26821667</id>
	<title>RE: feature request for iBatis3</title>
	<published>2009-12-16T17:28:59Z</published>
	<updated>2009-12-16T17:28:59Z</updated>
	<author>
		<name>OBender Hotmail</name>
	</author>
	<content type="html">Already there
&lt;br&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-717&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-717&lt;/a&gt;&lt;br&gt;&lt;br&gt;Thanks a lot for looking in to it!
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Clinton Begin [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821667&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;clinton.begin@...&lt;/a&gt;] 
&lt;br&gt;Sent: Wednesday, December 16, 2009 8:25 PM
&lt;br&gt;To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821667&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;Subject: Re: feature request for iBatis3
&lt;br&gt;&lt;br&gt;Can you create a jira ticket for this? &amp;nbsp;It might actually already
&lt;br&gt;work, if we allow it in the DTD.
&lt;br&gt;&lt;br&gt;Clinton
&lt;br&gt;&lt;br&gt;On 2009-12-16, OBender &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821667&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;osya_bender@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi All,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I guess this is a corner case but it is pretty important one for projects
&lt;br&gt;&amp;gt; with legacy data models.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Let say there is a table in DB that contains:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Column &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Type
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; id &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; s1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; s2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; s3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Also let say it is modeled (historically) by two immutable objects:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public class ObjX
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final int id;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final String s1;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final ObjY objY;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public &amp;nbsp; &amp;nbsp;ObjX( int id, String s1, ObjY objY )
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public class ObjY
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final String s2;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final String s3;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public &amp;nbsp; &amp;nbsp;ObjY( String s2, String s3 )
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In this case there seems to be no way to build a result map for ObjX in
&lt;br&gt;&amp;gt; iBatis without changing ObjX code but what if we cannot change it?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It would be nice if we could use resultMap in &amp;lt;constructor&amp;gt;/&amp;lt;arg&amp;gt; element.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This way one could write something like:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;resultMap type=&amp;quot;ObjX&amp;quot; id=&amp;quot;ObjXResult&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;idArg column=&amp;quot;id&amp;quot; javaType=&amp;quot;_int&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;arg column=&amp;quot;s1&amp;quot; javaType=&amp;quot;String&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;arg javaType=&amp;quot;ObjY&amp;quot; resultMap=&amp;quot;ObjYResult&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/constructor&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;resultMap type=&amp;quot;ObjY&amp;quot; id=&amp;quot;ObjYResult&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;arg column=&amp;quot;s2&amp;quot; javaType=&amp;quot;String&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;arg column=&amp;quot;s3&amp;quot; javaType=&amp;quot;String&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/constructor&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Comparable result could be achieved with TypeHandler but it will require
&lt;br&gt;&amp;gt; column names to be hardcoded in the TypeHandler implementation also will
&lt;br&gt;&amp;gt; require adding one TypeHandler per each such a case.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;Sent from my mobile device
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821667&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821667&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;No virus found in this incoming message.
&lt;br&gt;Checked by AVG - www.avg.com 
&lt;br&gt;Version: 9.0.716 / Virus Database: 270.14.101/2555 - Release Date: 12/14/09
&lt;br&gt;14:40:00
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821667&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821667&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/feature-request-for-iBatis3-tp26819480p26821667.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26821618</id>
	<title>Re: feature request for iBatis3</title>
	<published>2009-12-16T17:24:42Z</published>
	<updated>2009-12-16T17:24:42Z</updated>
	<author>
		<name>Clinton Begin</name>
	</author>
	<content type="html">Can you create a jira ticket for this? &amp;nbsp;It might actually already
&lt;br&gt;work, if we allow it in the DTD.
&lt;br&gt;&lt;br&gt;Clinton
&lt;br&gt;&lt;br&gt;On 2009-12-16, OBender &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821618&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;osya_bender@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi All,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I guess this is a corner case but it is pretty important one for projects
&lt;br&gt;&amp;gt; with legacy data models.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Let say there is a table in DB that contains:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Column &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Type
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; id &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; s1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; s2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; s3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Also let say it is modeled (historically) by two immutable objects:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public class ObjX
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final int id;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final String s1;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final ObjY objY;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public &amp;nbsp; &amp;nbsp;ObjX( int id, String s1, ObjY objY )
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public class ObjY
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final String s2;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private final String s3;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public &amp;nbsp; &amp;nbsp;ObjY( String s2, String s3 )
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In this case there seems to be no way to build a result map for ObjX in
&lt;br&gt;&amp;gt; iBatis without changing ObjX code but what if we cannot change it?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It would be nice if we could use resultMap in &amp;lt;constructor&amp;gt;/&amp;lt;arg&amp;gt; element.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This way one could write something like:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;resultMap type=&amp;quot;ObjX&amp;quot; id=&amp;quot;ObjXResult&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;idArg column=&amp;quot;id&amp;quot; javaType=&amp;quot;_int&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;arg column=&amp;quot;s1&amp;quot; javaType=&amp;quot;String&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;arg javaType=&amp;quot;ObjY&amp;quot; resultMap=&amp;quot;ObjYResult&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/constructor&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;resultMap type=&amp;quot;ObjY&amp;quot; id=&amp;quot;ObjYResult&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;arg column=&amp;quot;s2&amp;quot; javaType=&amp;quot;String&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;arg column=&amp;quot;s3&amp;quot; javaType=&amp;quot;String&amp;quot; /&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/constructor&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Comparable result could be achieved with TypeHandler but it will require
&lt;br&gt;&amp;gt; column names to be hardcoded in the TypeHandler implementation also will
&lt;br&gt;&amp;gt; require adding one TypeHandler per each such a case.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;Sent from my mobile device
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821618&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821618&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/feature-request-for-iBatis3-tp26819480p26821618.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26819480</id>
	<title>feature request for iBatis3</title>
	<published>2009-12-16T14:17:35Z</published>
	<updated>2009-12-16T14:17:35Z</updated>
	<author>
		<name>OBender Hotmail</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:m=&quot;http://schemas.microsoft.com/office/2004/12/omml&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;meta http-equiv=Content-Type content=&quot;text/html; charset=koi8-r&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 12 (filtered medium)&quot;&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body lang=EN-US link=blue vlink=purple&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;Hi All,&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;I guess this is a corner case but it is pretty important one
for projects with legacy data models.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Let say there is a table in DB that contains:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Column                Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;id                            int&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;s1                            string&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;s2                            string&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;s3                            string&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Also let say it is modeled (historically) by two immutable
objects:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;public class ObjX &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                private final int id;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                private final String s1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                private final ObjY objY;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                public    ObjX( int id, String s1, ObjY objY
) &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-indent:.5in'&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                                ...&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                }&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;public class ObjY &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                private final String s2;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                private final String s3;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                public    ObjY( String s2, String s3 ) &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-indent:.5in'&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                                ...&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;                }&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;In this case there seems to be no way to build a result map
for ObjX in iBatis without changing ObjX code but what if we cannot change it?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;It would be nice if we could use resultMap in
&amp;lt;constructor&amp;gt;/&amp;lt;arg&amp;gt; element.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;This way one could write something like:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&amp;lt;resultMap type=&amp;quot;ObjX&amp;quot;
id=&amp;quot;ObjXResult&amp;quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;        &amp;lt;constructor&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;            &amp;lt;idArg column=&amp;quot;id&amp;quot;
javaType=&amp;quot;_int&amp;quot; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;            &amp;lt;arg column=&amp;quot;s1&amp;quot; javaType=&amp;quot;String&amp;quot;
/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;            &amp;lt;arg javaType=&amp;quot;ObjY&amp;quot;
resultMap=&amp;quot;ObjYResult&amp;quot;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;        &amp;lt;/constructor&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&amp;lt;/resultMap&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&amp;lt;resultMap type=&amp;quot;ObjY&amp;quot;
id=&amp;quot;ObjYResult&amp;quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;        &amp;lt;constructor&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;            &amp;lt;arg column=&amp;quot;s2&amp;quot;
javaType=&amp;quot;String&amp;quot; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;            &amp;lt;arg column=&amp;quot;s3&amp;quot; javaType=&amp;quot;String&amp;quot;
/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;        &amp;lt;/constructor&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&amp;lt;/resultMap&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Comparable result could be achieved with TypeHandler but it
will require column names to be hardcoded in the TypeHandler implementation also
will require adding one TypeHandler per each such a case.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Thanks &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/feature-request-for-iBatis3-tp26819480p26819480.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816737</id>
	<title>RE: Lazy loading differences between ibatis 2 and 3</title>
	<published>2009-12-16T11:11:42Z</published>
	<updated>2009-12-16T11:11:42Z</updated>
	<author>
		<name>Poitras Christian</name>
	</author>
	<content type="html">Having a proxy that always extends Employee (never Director) would delay the lazy load. But doing this would cause this method to always return false:
&lt;br&gt;public boolean askARase() {
&lt;br&gt;&amp;nbsp; if (this.getBoss() instanceof Director) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; return true;
&lt;br&gt;&amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; return false;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;The proxy can only extend a single class, so when the boss proxy is created it must be of the right class. To be of the right class, the select must be executed before boss property is accessed in any way (including instanceof test). To be sure boss property is of the right type, it must be loaded as soon as any method on Employee is called.
&lt;br&gt;&lt;br&gt;I supposed an optimization that can be added to iBATIS is to check if the property is loaded by a select. If so, check it the select's resultMap contains a discriminator tag. If so load it before any method is called. If not, create a proxy and load the real object only when one of it's method is called.
&lt;br&gt;&lt;br&gt;If you program such a patch, I'm sure it will be appreciated.
&lt;br&gt;&lt;br&gt;Christian
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;] 
&lt;br&gt;Sent: Wednesday, December 16, 2009 2:00 PM
&lt;br&gt;To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;Subject: Re: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&lt;br&gt;But as the proxy is a subclass of Employee, this.getBoss() will get intercepted by the proxy method handler which will load the boss immediately before hasMoney() is invoked on it. So I see no need to load it at the point of askARase() invocation.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;--
&lt;br&gt;Carlos
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Wed, Dec 16, 2009 at 4:45 PM, Poitras Christian &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Christian.Poitras@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Bardamu,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I think it was not clear enough due to the lack of Proxy explanation.
&lt;br&gt;&amp;gt; If I have an employee and I call getBoss() on it, it has to load the boss property. But what if I call a method like this in employee?
&lt;br&gt;&amp;gt; public boolean askARase() {
&lt;br&gt;&amp;gt;  if (this.getBoss().hasMoney()) {
&lt;br&gt;&amp;gt;    return true;
&lt;br&gt;&amp;gt;  } else {
&lt;br&gt;&amp;gt;    return false;
&lt;br&gt;&amp;gt;  }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Then, I hope the boss property is loaded before hasMoney() is called on it.
&lt;br&gt;&amp;gt; The boss property itself is a proxy that can be defined as &amp;lt;E extends Employee&amp;gt;, but what is E? Since iBATIS does not know for sure, I has to call the select to get the right type for boss as soon as any method on Employee is called.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Christian
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt; From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;]
&lt;br&gt;&amp;gt; Sent: Wednesday, December 16, 2009 12:16 PM
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Subject: Re: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Christian,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I understand your point but I don't get its relation to my question at all. Continuing your example, I would ask why employee.getName() will prematurely load the boss. A priori, I would expect the proxy to be smarter and only trigger the loading of boss if getBoss() was effectively called.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Bardamu
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Wed, Dec 16, 2009 at 3:09 PM, Poitras Christian &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Christian.Poitras@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The major problem that was present in iBATIS 2 was that lazy loaded class where not always of the right type.
&lt;br&gt;&amp;gt;&amp;gt; For exemple, if I have multiple subclasses of a class.
&lt;br&gt;&amp;gt;&amp;gt; Person
&lt;br&gt;&amp;gt;&amp;gt; Employee inherits Person
&lt;br&gt;&amp;gt;&amp;gt; Director inherits Employee
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; If I have an object Employee with a method getBoss() that returns an Employee (lazy loaded), I expect that sometimes it will be a director.
&lt;br&gt;&amp;gt;&amp;gt; In iBATIS 2, testing (employee.getBoss() instanceof Director) will always be false. This problem is due to the fact that iBATIS does not know the real class of the boss property and creates a Proxy of Employee.
&lt;br&gt;&amp;gt;&amp;gt; In iBATIS 3, testing (employee.getBoss() instanceof Director) will be true if the employee's boss is a Director. To know the real type, the statement must be executed.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Christian
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt;&amp;gt; From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;]
&lt;br&gt;&amp;gt;&amp;gt; Sent: Wednesday, December 16, 2009 11:45 AM
&lt;br&gt;&amp;gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; Subject: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi all,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I've the following sqlmap for ibatis 2. Suppose ibatis has its 
&lt;br&gt;&amp;gt;&amp;gt; lazy-loading feature enabled and I obtain a user U by means of 
&lt;br&gt;&amp;gt;&amp;gt; findUserById. Then I call U.getEmail() and findMemberById is not 
&lt;br&gt;&amp;gt;&amp;gt; executed. That's fine, one wouldn't expect the associated member to 
&lt;br&gt;&amp;gt;&amp;gt; be loaded until there is a real need for it. Of course, if then I 
&lt;br&gt;&amp;gt;&amp;gt; call
&lt;br&gt;&amp;gt;&amp;gt; U.getMember().getDescription() findMemberById does execute its select, in due time. That said, for ibatis 3 the same example executes findMemberById as soon as U.getEmail() is invoked, loading the member before time. That's not surprising if one inspects the code of ResultObjectProxy (relevant parts copied below). Is this intended to work the way it does or is it a bug?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;sqlMap namespace=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;userMap&amp;quot; class=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;result property=&amp;quot;email&amp;quot; column=&amp;quot;email&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;result property=&amp;quot;member&amp;quot; column=&amp;quot;member_id&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; select=&amp;quot;findMemberById&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;memberMap&amp;quot; class=&amp;quot;Member&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;result property=&amp;quot;description&amp;quot; column=&amp;quot;description&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;select id=&amp;quot;findUserById&amp;quot; resultMap=&amp;quot;userMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;                select * from qpoint_user where id = #id#
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;select id=&amp;quot;findMemberById&amp;quot; resultMap=&amp;quot;memberMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;                select * from cpp_member where member_id = #id#
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;/sqlMap&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; public class ResultObjectProxy {
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;   public Object invoke(Object o, Method method, Object[] args) throws 
&lt;br&gt;&amp;gt;&amp;gt; Throwable {
&lt;br&gt;&amp;gt;&amp;gt;      try {
&lt;br&gt;&amp;gt;&amp;gt;        if (!Object.class.equals(method.getDeclaringClass()) &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt; PropertyNamer.isGetter(method.getName())) {
&lt;br&gt;&amp;gt;&amp;gt;            lazyLoader.loadAll(); &amp;lt;-- this loads all asociations for 
&lt;br&gt;&amp;gt;&amp;gt; every getter invoked on this proxy
&lt;br&gt;&amp;gt;&amp;gt;        }
&lt;br&gt;&amp;gt;&amp;gt;        return method.invoke(target, args);
&lt;br&gt;&amp;gt;&amp;gt;      } catch (Throwable t) {
&lt;br&gt;&amp;gt;&amp;gt;        throw ExceptionUtil.unwrapThrowable(t);
&lt;br&gt;&amp;gt;&amp;gt;      }
&lt;br&gt;&amp;gt;&amp;gt;    }
&lt;br&gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Regards
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Bardamu
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816737&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Lazy-loading-differences-between-ibatis-2-and-3-tp26814404p26816737.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816620</id>
	<title>Re: Lazy loading differences between ibatis 2 and 3</title>
	<published>2009-12-16T11:04:52Z</published>
	<updated>2009-12-16T11:04:52Z</updated>
	<author>
		<name>Clinton Begin</name>
	</author>
	<content type="html">Carlos,
&lt;br&gt;&lt;br&gt;We implemented it this way to handle issues with circular
&lt;br&gt;dependencies. &amp;nbsp;Essentially, yes, all dependencies will be loaded if
&lt;br&gt;you access any of them.
&lt;br&gt;&lt;br&gt;If your getName() getter method accessed the &amp;quot;boss&amp;quot; field internally,
&lt;br&gt;it would fail.
&lt;br&gt;&lt;br&gt;Clinton
&lt;br&gt;&lt;br&gt;On Wed, Dec 16, 2009 at 10:16 AM, Carlos Pita &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Christian,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I understand your point but I don't get its relation to my question at
&lt;br&gt;&amp;gt; all. Continuing your example, I would ask why employee.getName() will
&lt;br&gt;&amp;gt; prematurely load the boss. A priori, I would expect the proxy to be
&lt;br&gt;&amp;gt; smarter and only trigger the loading of boss if getBoss() was
&lt;br&gt;&amp;gt; effectively called.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Bardamu
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Wed, Dec 16, 2009 at 3:09 PM, Poitras Christian
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Christian.Poitras@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The major problem that was present in iBATIS 2 was that lazy loaded class where not always of the right type.
&lt;br&gt;&amp;gt;&amp;gt; For exemple, if I have multiple subclasses of a class.
&lt;br&gt;&amp;gt;&amp;gt; Person
&lt;br&gt;&amp;gt;&amp;gt; Employee inherits Person
&lt;br&gt;&amp;gt;&amp;gt; Director inherits Employee
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; If I have an object Employee with a method getBoss() that returns an Employee (lazy loaded), I expect that sometimes it will be a director.
&lt;br&gt;&amp;gt;&amp;gt; In iBATIS 2, testing (employee.getBoss() instanceof Director) will always be false. This problem is due to the fact that iBATIS does not know the real class of the boss property and creates a Proxy of Employee.
&lt;br&gt;&amp;gt;&amp;gt; In iBATIS 3, testing (employee.getBoss() instanceof Director) will be true if the employee's boss is a Director. To know the real type, the statement must be executed.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Christian
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt;&amp;gt; From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;]
&lt;br&gt;&amp;gt;&amp;gt; Sent: Wednesday, December 16, 2009 11:45 AM
&lt;br&gt;&amp;gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; Subject: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi all,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I've the following sqlmap for ibatis 2. Suppose ibatis has its lazy-loading feature enabled and I obtain a user U by means of findUserById. Then I call U.getEmail() and findMemberById is not executed. That's fine, one wouldn't expect the associated member to be loaded until there is a real need for it. Of course, if then I call
&lt;br&gt;&amp;gt;&amp;gt; U.getMember().getDescription() findMemberById does execute its select, in due time. That said, for ibatis 3 the same example executes findMemberById as soon as U.getEmail() is invoked, loading the member before time. That's not surprising if one inspects the code of ResultObjectProxy (relevant parts copied below). Is this intended to work the way it does or is it a bug?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;sqlMap namespace=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;userMap&amp;quot; class=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;result property=&amp;quot;email&amp;quot; column=&amp;quot;email&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;result property=&amp;quot;member&amp;quot; column=&amp;quot;member_id&amp;quot; select=&amp;quot;findMemberById&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;memberMap&amp;quot; class=&amp;quot;Member&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;result property=&amp;quot;description&amp;quot; column=&amp;quot;description&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;select id=&amp;quot;findUserById&amp;quot; resultMap=&amp;quot;userMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;                select * from qpoint_user where id = #id#
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;select id=&amp;quot;findMemberById&amp;quot; resultMap=&amp;quot;memberMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;                select * from cpp_member where member_id = #id#
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;/sqlMap&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; public class ResultObjectProxy {
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;   public Object invoke(Object o, Method method, Object[] args) throws Throwable {
&lt;br&gt;&amp;gt;&amp;gt;      try {
&lt;br&gt;&amp;gt;&amp;gt;        if (!Object.class.equals(method.getDeclaringClass()) &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt; PropertyNamer.isGetter(method.getName())) {
&lt;br&gt;&amp;gt;&amp;gt;            lazyLoader.loadAll(); &amp;lt;-- this loads all asociations for every getter invoked on this proxy
&lt;br&gt;&amp;gt;&amp;gt;        }
&lt;br&gt;&amp;gt;&amp;gt;        return method.invoke(target, args);
&lt;br&gt;&amp;gt;&amp;gt;      } catch (Throwable t) {
&lt;br&gt;&amp;gt;&amp;gt;        throw ExceptionUtil.unwrapThrowable(t);
&lt;br&gt;&amp;gt;&amp;gt;      }
&lt;br&gt;&amp;gt;&amp;gt;    }
&lt;br&gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Regards
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Bardamu
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816620&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Lazy-loading-differences-between-ibatis-2-and-3-tp26814404p26816620.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816549</id>
	<title>Re: Lazy loading differences between ibatis 2 and 3</title>
	<published>2009-12-16T11:00:10Z</published>
	<updated>2009-12-16T11:00:10Z</updated>
	<author>
		<name>CarlosJP</name>
	</author>
	<content type="html">But as the proxy is a subclass of Employee, this.getBoss() will get
&lt;br&gt;intercepted by the proxy method handler which will load the boss
&lt;br&gt;immediately before hasMoney() is invoked on it. So I see no need to
&lt;br&gt;load it at the point of askARase() invocation.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;--
&lt;br&gt;Carlos
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Wed, Dec 16, 2009 at 4:45 PM, Poitras Christian
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Christian.Poitras@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Bardamu,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I think it was not clear enough due to the lack of Proxy explanation.
&lt;br&gt;&amp;gt; If I have an employee and I call getBoss() on it, it has to load the boss property. But what if I call a method like this in employee?
&lt;br&gt;&amp;gt; public boolean askARase() {
&lt;br&gt;&amp;gt;  if (this.getBoss().hasMoney()) {
&lt;br&gt;&amp;gt;    return true;
&lt;br&gt;&amp;gt;  } else {
&lt;br&gt;&amp;gt;    return false;
&lt;br&gt;&amp;gt;  }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Then, I hope the boss property is loaded before hasMoney() is called on it.
&lt;br&gt;&amp;gt; The boss property itself is a proxy that can be defined as &amp;lt;E extends Employee&amp;gt;, but what is E? Since iBATIS does not know for sure, I has to call the select to get the right type for boss as soon as any method on Employee is called.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Christian
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt; From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;]
&lt;br&gt;&amp;gt; Sent: Wednesday, December 16, 2009 12:16 PM
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Subject: Re: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Christian,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I understand your point but I don't get its relation to my question at all. Continuing your example, I would ask why employee.getName() will prematurely load the boss. A priori, I would expect the proxy to be smarter and only trigger the loading of boss if getBoss() was effectively called.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Bardamu
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Wed, Dec 16, 2009 at 3:09 PM, Poitras Christian &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Christian.Poitras@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The major problem that was present in iBATIS 2 was that lazy loaded class where not always of the right type.
&lt;br&gt;&amp;gt;&amp;gt; For exemple, if I have multiple subclasses of a class.
&lt;br&gt;&amp;gt;&amp;gt; Person
&lt;br&gt;&amp;gt;&amp;gt; Employee inherits Person
&lt;br&gt;&amp;gt;&amp;gt; Director inherits Employee
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; If I have an object Employee with a method getBoss() that returns an Employee (lazy loaded), I expect that sometimes it will be a director.
&lt;br&gt;&amp;gt;&amp;gt; In iBATIS 2, testing (employee.getBoss() instanceof Director) will always be false. This problem is due to the fact that iBATIS does not know the real class of the boss property and creates a Proxy of Employee.
&lt;br&gt;&amp;gt;&amp;gt; In iBATIS 3, testing (employee.getBoss() instanceof Director) will be true if the employee's boss is a Director. To know the real type, the statement must be executed.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Christian
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt;&amp;gt; From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;]
&lt;br&gt;&amp;gt;&amp;gt; Sent: Wednesday, December 16, 2009 11:45 AM
&lt;br&gt;&amp;gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; Subject: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi all,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I've the following sqlmap for ibatis 2. Suppose ibatis has its
&lt;br&gt;&amp;gt;&amp;gt; lazy-loading feature enabled and I obtain a user U by means of
&lt;br&gt;&amp;gt;&amp;gt; findUserById. Then I call U.getEmail() and findMemberById is not
&lt;br&gt;&amp;gt;&amp;gt; executed. That's fine, one wouldn't expect the associated member to be
&lt;br&gt;&amp;gt;&amp;gt; loaded until there is a real need for it. Of course, if then I call
&lt;br&gt;&amp;gt;&amp;gt; U.getMember().getDescription() findMemberById does execute its select, in due time. That said, for ibatis 3 the same example executes findMemberById as soon as U.getEmail() is invoked, loading the member before time. That's not surprising if one inspects the code of ResultObjectProxy (relevant parts copied below). Is this intended to work the way it does or is it a bug?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;sqlMap namespace=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;userMap&amp;quot; class=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;result property=&amp;quot;email&amp;quot; column=&amp;quot;email&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;result property=&amp;quot;member&amp;quot; column=&amp;quot;member_id&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; select=&amp;quot;findMemberById&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;memberMap&amp;quot; class=&amp;quot;Member&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;result property=&amp;quot;description&amp;quot; column=&amp;quot;description&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;select id=&amp;quot;findUserById&amp;quot; resultMap=&amp;quot;userMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;                select * from qpoint_user where id = #id#
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;select id=&amp;quot;findMemberById&amp;quot; resultMap=&amp;quot;memberMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;                select * from cpp_member where member_id = #id#
&lt;br&gt;&amp;gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;/sqlMap&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; public class ResultObjectProxy {
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;   public Object invoke(Object o, Method method, Object[] args) throws
&lt;br&gt;&amp;gt;&amp;gt; Throwable {
&lt;br&gt;&amp;gt;&amp;gt;      try {
&lt;br&gt;&amp;gt;&amp;gt;        if (!Object.class.equals(method.getDeclaringClass()) &amp;&amp;
&lt;br&gt;&amp;gt;&amp;gt; PropertyNamer.isGetter(method.getName())) {
&lt;br&gt;&amp;gt;&amp;gt;            lazyLoader.loadAll(); &amp;lt;-- this loads all asociations for
&lt;br&gt;&amp;gt;&amp;gt; every getter invoked on this proxy
&lt;br&gt;&amp;gt;&amp;gt;        }
&lt;br&gt;&amp;gt;&amp;gt;        return method.invoke(target, args);
&lt;br&gt;&amp;gt;&amp;gt;      } catch (Throwable t) {
&lt;br&gt;&amp;gt;&amp;gt;        throw ExceptionUtil.unwrapThrowable(t);
&lt;br&gt;&amp;gt;&amp;gt;      }
&lt;br&gt;&amp;gt;&amp;gt;    }
&lt;br&gt;&amp;gt;&amp;gt; }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Regards
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Bardamu
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816549&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Lazy-loading-differences-between-ibatis-2-and-3-tp26814404p26816549.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816301</id>
	<title>RE: Lazy loading differences between ibatis 2 and 3</title>
	<published>2009-12-16T10:45:05Z</published>
	<updated>2009-12-16T10:45:05Z</updated>
	<author>
		<name>Poitras Christian</name>
	</author>
	<content type="html">Hi Bardamu,
&lt;br&gt;&lt;br&gt;I think it was not clear enough due to the lack of Proxy explanation.
&lt;br&gt;If I have an employee and I call getBoss() on it, it has to load the boss property. But what if I call a method like this in employee?
&lt;br&gt;public boolean askARase() {
&lt;br&gt;&amp;nbsp; if (this.getBoss().hasMoney()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; return true;
&lt;br&gt;&amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; return false;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;Then, I hope the boss property is loaded before hasMoney() is called on it.
&lt;br&gt;The boss property itself is a proxy that can be defined as &amp;lt;E extends Employee&amp;gt;, but what is E? Since iBATIS does not know for sure, I has to call the select to get the right type for boss as soon as any method on Employee is called.
&lt;br&gt;&lt;br&gt;Christian
&lt;br&gt;&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;] 
&lt;br&gt;Sent: Wednesday, December 16, 2009 12:16 PM
&lt;br&gt;To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;Subject: Re: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&lt;br&gt;Hi Christian,
&lt;br&gt;&lt;br&gt;I understand your point but I don't get its relation to my question at all. Continuing your example, I would ask why employee.getName() will prematurely load the boss. A priori, I would expect the proxy to be smarter and only trigger the loading of boss if getBoss() was effectively called.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;--
&lt;br&gt;Bardamu
&lt;br&gt;&lt;br&gt;On Wed, Dec 16, 2009 at 3:09 PM, Poitras Christian &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Christian.Poitras@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The major problem that was present in iBATIS 2 was that lazy loaded class where not always of the right type.
&lt;br&gt;&amp;gt; For exemple, if I have multiple subclasses of a class.
&lt;br&gt;&amp;gt; Person
&lt;br&gt;&amp;gt; Employee inherits Person
&lt;br&gt;&amp;gt; Director inherits Employee
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If I have an object Employee with a method getBoss() that returns an Employee (lazy loaded), I expect that sometimes it will be a director.
&lt;br&gt;&amp;gt; In iBATIS 2, testing (employee.getBoss() instanceof Director) will always be false. This problem is due to the fact that iBATIS does not know the real class of the boss property and creates a Proxy of Employee.
&lt;br&gt;&amp;gt; In iBATIS 3, testing (employee.getBoss() instanceof Director) will be true if the employee's boss is a Director. To know the real type, the statement must be executed.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Christian
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt; From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;]
&lt;br&gt;&amp;gt; Sent: Wednesday, December 16, 2009 11:45 AM
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Subject: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi all,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I've the following sqlmap for ibatis 2. Suppose ibatis has its 
&lt;br&gt;&amp;gt; lazy-loading feature enabled and I obtain a user U by means of 
&lt;br&gt;&amp;gt; findUserById. Then I call U.getEmail() and findMemberById is not 
&lt;br&gt;&amp;gt; executed. That's fine, one wouldn't expect the associated member to be 
&lt;br&gt;&amp;gt; loaded until there is a real need for it. Of course, if then I call
&lt;br&gt;&amp;gt; U.getMember().getDescription() findMemberById does execute its select, in due time. That said, for ibatis 3 the same example executes findMemberById as soon as U.getEmail() is invoked, loading the member before time. That's not surprising if one inspects the code of ResultObjectProxy (relevant parts copied below). Is this intended to work the way it does or is it a bug?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;sqlMap namespace=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;userMap&amp;quot; class=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;result property=&amp;quot;email&amp;quot; column=&amp;quot;email&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;result property=&amp;quot;member&amp;quot; column=&amp;quot;member_id&amp;quot; 
&lt;br&gt;&amp;gt; select=&amp;quot;findMemberById&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;memberMap&amp;quot; class=&amp;quot;Member&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;result property=&amp;quot;description&amp;quot; column=&amp;quot;description&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;select id=&amp;quot;findUserById&amp;quot; resultMap=&amp;quot;userMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;                select * from qpoint_user where id = #id#
&lt;br&gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;select id=&amp;quot;findMemberById&amp;quot; resultMap=&amp;quot;memberMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;                select * from cpp_member where member_id = #id#
&lt;br&gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;/sqlMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public class ResultObjectProxy {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;   public Object invoke(Object o, Method method, Object[] args) throws 
&lt;br&gt;&amp;gt; Throwable {
&lt;br&gt;&amp;gt;      try {
&lt;br&gt;&amp;gt;        if (!Object.class.equals(method.getDeclaringClass()) &amp;&amp;
&lt;br&gt;&amp;gt; PropertyNamer.isGetter(method.getName())) {
&lt;br&gt;&amp;gt;            lazyLoader.loadAll(); &amp;lt;-- this loads all asociations for 
&lt;br&gt;&amp;gt; every getter invoked on this proxy
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;        return method.invoke(target, args);
&lt;br&gt;&amp;gt;      } catch (Throwable t) {
&lt;br&gt;&amp;gt;        throw ExceptionUtil.unwrapThrowable(t);
&lt;br&gt;&amp;gt;      }
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Bardamu
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816301&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Lazy-loading-differences-between-ibatis-2-and-3-tp26814404p26816301.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26814880</id>
	<title>Re: Lazy loading differences between ibatis 2 and 3</title>
	<published>2009-12-16T09:16:15Z</published>
	<updated>2009-12-16T09:16:15Z</updated>
	<author>
		<name>CarlosJP</name>
	</author>
	<content type="html">Hi Christian,
&lt;br&gt;&lt;br&gt;I understand your point but I don't get its relation to my question at
&lt;br&gt;all. Continuing your example, I would ask why employee.getName() will
&lt;br&gt;prematurely load the boss. A priori, I would expect the proxy to be
&lt;br&gt;smarter and only trigger the loading of boss if getBoss() was
&lt;br&gt;effectively called.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;--
&lt;br&gt;Bardamu
&lt;br&gt;&lt;br&gt;On Wed, Dec 16, 2009 at 3:09 PM, Poitras Christian
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814880&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Christian.Poitras@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The major problem that was present in iBATIS 2 was that lazy loaded class where not always of the right type.
&lt;br&gt;&amp;gt; For exemple, if I have multiple subclasses of a class.
&lt;br&gt;&amp;gt; Person
&lt;br&gt;&amp;gt; Employee inherits Person
&lt;br&gt;&amp;gt; Director inherits Employee
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If I have an object Employee with a method getBoss() that returns an Employee (lazy loaded), I expect that sometimes it will be a director.
&lt;br&gt;&amp;gt; In iBATIS 2, testing (employee.getBoss() instanceof Director) will always be false. This problem is due to the fact that iBATIS does not know the real class of the boss property and creates a Proxy of Employee.
&lt;br&gt;&amp;gt; In iBATIS 3, testing (employee.getBoss() instanceof Director) will be true if the employee's boss is a Director. To know the real type, the statement must be executed.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Christian
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt; From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814880&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;]
&lt;br&gt;&amp;gt; Sent: Wednesday, December 16, 2009 11:45 AM
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814880&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Subject: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi all,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I've the following sqlmap for ibatis 2. Suppose ibatis has its lazy-loading feature enabled and I obtain a user U by means of findUserById. Then I call U.getEmail() and findMemberById is not executed. That's fine, one wouldn't expect the associated member to be loaded until there is a real need for it. Of course, if then I call
&lt;br&gt;&amp;gt; U.getMember().getDescription() findMemberById does execute its select, in due time. That said, for ibatis 3 the same example executes findMemberById as soon as U.getEmail() is invoked, loading the member before time. That's not surprising if one inspects the code of ResultObjectProxy (relevant parts copied below). Is this intended to work the way it does or is it a bug?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;sqlMap namespace=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;userMap&amp;quot; class=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;result property=&amp;quot;email&amp;quot; column=&amp;quot;email&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;result property=&amp;quot;member&amp;quot; column=&amp;quot;member_id&amp;quot; select=&amp;quot;findMemberById&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;resultMap id=&amp;quot;memberMap&amp;quot; class=&amp;quot;Member&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;result property=&amp;quot;description&amp;quot; column=&amp;quot;description&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;select id=&amp;quot;findUserById&amp;quot; resultMap=&amp;quot;userMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;                select * from qpoint_user where id = #id#
&lt;br&gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        &amp;lt;select id=&amp;quot;findMemberById&amp;quot; resultMap=&amp;quot;memberMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;                select * from cpp_member where member_id = #id#
&lt;br&gt;&amp;gt;        &amp;lt;/select&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;/sqlMap&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public class ResultObjectProxy {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;   public Object invoke(Object o, Method method, Object[] args) throws Throwable {
&lt;br&gt;&amp;gt;      try {
&lt;br&gt;&amp;gt;        if (!Object.class.equals(method.getDeclaringClass()) &amp;&amp;
&lt;br&gt;&amp;gt; PropertyNamer.isGetter(method.getName())) {
&lt;br&gt;&amp;gt;            lazyLoader.loadAll(); &amp;lt;-- this loads all asociations for every getter invoked on this proxy
&lt;br&gt;&amp;gt;        }
&lt;br&gt;&amp;gt;        return method.invoke(target, args);
&lt;br&gt;&amp;gt;      } catch (Throwable t) {
&lt;br&gt;&amp;gt;        throw ExceptionUtil.unwrapThrowable(t);
&lt;br&gt;&amp;gt;      }
&lt;br&gt;&amp;gt;    }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Regards
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Bardamu
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814880&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814880&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814880&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814880&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814880&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814880&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Lazy-loading-differences-between-ibatis-2-and-3-tp26814404p26814880.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26814736</id>
	<title>RE: Lazy loading differences between ibatis 2 and 3</title>
	<published>2009-12-16T09:09:32Z</published>
	<updated>2009-12-16T09:09:32Z</updated>
	<author>
		<name>Poitras Christian</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;The major problem that was present in iBATIS 2 was that lazy loaded class where not always of the right type.
&lt;br&gt;For exemple, if I have multiple subclasses of a class.
&lt;br&gt;Person
&lt;br&gt;Employee inherits Person
&lt;br&gt;Director inherits Employee
&lt;br&gt;&lt;br&gt;If I have an object Employee with a method getBoss() that returns an Employee (lazy loaded), I expect that sometimes it will be a director.
&lt;br&gt;In iBATIS 2, testing (employee.getBoss() instanceof Director) will always be false. This problem is due to the fact that iBATIS does not know the real class of the boss property and creates a Proxy of Employee.
&lt;br&gt;In iBATIS 3, testing (employee.getBoss() instanceof Director) will be true if the employee's boss is a Director. To know the real type, the statement must be executed.
&lt;br&gt;&lt;br&gt;Christian
&lt;br&gt;&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Carlos Pita [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814736&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;carlosjosepita@...&lt;/a&gt;] 
&lt;br&gt;Sent: Wednesday, December 16, 2009 11:45 AM
&lt;br&gt;To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814736&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;Subject: Lazy loading differences between ibatis 2 and 3
&lt;br&gt;&lt;br&gt;Hi all,
&lt;br&gt;&lt;br&gt;I've the following sqlmap for ibatis 2. Suppose ibatis has its lazy-loading feature enabled and I obtain a user U by means of findUserById. Then I call U.getEmail() and findMemberById is not executed. That's fine, one wouldn't expect the associated member to be loaded until there is a real need for it. Of course, if then I call
&lt;br&gt;U.getMember().getDescription() findMemberById does execute its select, in due time. That said, for ibatis 3 the same example executes findMemberById as soon as U.getEmail() is invoked, loading the member before time. That's not surprising if one inspects the code of ResultObjectProxy (relevant parts copied below). Is this intended to work the way it does or is it a bug?
&lt;br&gt;&lt;br&gt;&amp;lt;sqlMap namespace=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;resultMap id=&amp;quot;userMap&amp;quot; class=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;result property=&amp;quot;email&amp;quot; column=&amp;quot;email&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;result property=&amp;quot;member&amp;quot; column=&amp;quot;member_id&amp;quot; select=&amp;quot;findMemberById&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;resultMap id=&amp;quot;memberMap&amp;quot; class=&amp;quot;Member&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;result property=&amp;quot;description&amp;quot; column=&amp;quot;description&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;select id=&amp;quot;findUserById&amp;quot; resultMap=&amp;quot;userMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select * from qpoint_user where id = #id#
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/select&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;select id=&amp;quot;findMemberById&amp;quot; resultMap=&amp;quot;memberMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select * from cpp_member where member_id = #id#
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/select&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;lt;/sqlMap&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;public class ResultObjectProxy {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;public Object invoke(Object o, Method method, Object[] args) throws Throwable {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (!Object.class.equals(method.getDeclaringClass()) &amp;&amp;
&lt;br&gt;PropertyNamer.isGetter(method.getName())) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lazyLoader.loadAll(); &amp;lt;-- this loads all asociations for every getter invoked on this proxy
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return method.invoke(target, args);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; } catch (Throwable t) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw ExceptionUtil.unwrapThrowable(t);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;--
&lt;br&gt;Bardamu
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814736&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814736&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814736&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814736&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Lazy-loading-differences-between-ibatis-2-and-3-tp26814404p26814736.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26814404</id>
	<title>Lazy loading differences between ibatis 2 and 3</title>
	<published>2009-12-16T08:45:03Z</published>
	<updated>2009-12-16T08:45:03Z</updated>
	<author>
		<name>CarlosJP</name>
	</author>
	<content type="html">Hi all,
&lt;br&gt;&lt;br&gt;I've the following sqlmap for ibatis 2. Suppose ibatis has its
&lt;br&gt;lazy-loading feature enabled and I obtain a user U by means of
&lt;br&gt;findUserById. Then I call U.getEmail() and findMemberById is not
&lt;br&gt;executed. That's fine, one wouldn't expect the associated member to be
&lt;br&gt;loaded until there is a real need for it. Of course, if then I call
&lt;br&gt;U.getMember().getDescription() findMemberById does execute its select,
&lt;br&gt;in due time. That said, for ibatis 3 the same example executes
&lt;br&gt;findMemberById as soon as U.getEmail() is invoked, loading the member
&lt;br&gt;before time. That's not surprising if one inspects the code of
&lt;br&gt;ResultObjectProxy (relevant parts copied below). Is this intended to
&lt;br&gt;work the way it does or is it a bug?
&lt;br&gt;&lt;br&gt;&amp;lt;sqlMap namespace=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;resultMap id=&amp;quot;userMap&amp;quot; class=&amp;quot;User&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;result property=&amp;quot;email&amp;quot; column=&amp;quot;email&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;result property=&amp;quot;member&amp;quot; column=&amp;quot;member_id&amp;quot; select=&amp;quot;findMemberById&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;resultMap id=&amp;quot;memberMap&amp;quot; class=&amp;quot;Member&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;result property=&amp;quot;description&amp;quot; column=&amp;quot;description&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/resultMap&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;select id=&amp;quot;findUserById&amp;quot; resultMap=&amp;quot;userMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select * from qpoint_user where id = #id#
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/select&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;select id=&amp;quot;findMemberById&amp;quot; resultMap=&amp;quot;memberMap&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select * from cpp_member where member_id = #id#
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/select&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;lt;/sqlMap&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;public class ResultObjectProxy {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;public Object invoke(Object o, Method method, Object[] args) throws
&lt;br&gt;Throwable {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (!Object.class.equals(method.getDeclaringClass()) &amp;&amp;
&lt;br&gt;PropertyNamer.isGetter(method.getName())) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lazyLoader.loadAll(); &amp;lt;-- this loads all asociations for
&lt;br&gt;every getter invoked on this proxy
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return method.invoke(target, args);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; } catch (Throwable t) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw ExceptionUtil.unwrapThrowable(t);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;--
&lt;br&gt;Bardamu
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814404&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814404&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Lazy-loading-differences-between-ibatis-2-and-3-tp26814404p26814404.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26798396</id>
	<title>Re: When can we get next version which is &quot;iBATIS for Java 2.3.5&quot; ?</title>
	<published>2009-12-15T09:20:27Z</published>
	<updated>2009-12-15T09:20:27Z</updated>
	<author>
		<name>Clinton Begin</name>
	</author>
	<content type="html">Making 2.0 Java 6 compilable is pretty simple I think.  As for the release, it&amp;#39;s a volunteer effort, so it&amp;#39;s just a matter of finding time. &lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Dec 15, 2009 at 10:15 AM, J.C. &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798396&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jchamlin@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;&lt;br&gt;
Ah, I had a jdk\bin in the path that was Java 5, but JAVA_HOME was set to a&lt;br&gt;
Java 6 JDK. So I guess the build requires not just that a Java 5 version be&lt;br&gt;
in the path first, but rather that JAVA_HOME is set to the JDK you want it&lt;br&gt;
to use to build.&lt;br&gt;
&lt;br&gt;
Okay, so I just did a mvn package and it built and tested successfully. :) I&lt;br&gt;
got an artifact, ibatis-sqlmap-SNAPSHOT-r890827.jar as the result in the&lt;br&gt;
target directory.&lt;br&gt;
&lt;br&gt;
So, two questions then:&lt;br&gt;
1) Can we get an official release of iBatis 2.3.5?&lt;br&gt;
2) Can you add support for Java 6, since 5 is officially past its&lt;br&gt;
end-of-life as of a few months ago? Here we&amp;#39;ve got some wrappers that are&lt;br&gt;
Java 6 (and JDBC 4.0 compliant), but will also run against Java 5 (and JDBC&lt;br&gt;
3.5 too, it&amp;#39;s not that difficult to use reflection for the few delegate&lt;br&gt;
methods that need it).&lt;br&gt;
&lt;br&gt;
-J.C.&lt;br&gt;
&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;
Clinton Begin wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; It does compile under Java 5.  That&amp;#39;s the release it&amp;#39;s built for.  Was&lt;br&gt;
&amp;gt; your&lt;br&gt;
&amp;gt; JAVA_HOME env var set correctly?&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Clinton&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Tue, Dec 15, 2009 at 9:03 AM, J.C. &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798396&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jchamlin@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; First, I apologize in advance for resurrecting an old thread, but its&lt;br&gt;
&amp;gt;&amp;gt; content&lt;br&gt;
&amp;gt;&amp;gt; still seems very relevant.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; I went looking for an updated version of iBatis 2.3.4 that addresses this&lt;br&gt;
&amp;gt;&amp;gt; issue:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-517&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-517&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; It looks like in the &amp;quot;release notes&amp;quot; for iBatis 2.3.5 it is listed as&lt;br&gt;
&amp;gt;&amp;gt; fixed:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10601&amp;amp;styleName=Html&amp;amp;version=12313829&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10601&amp;amp;styleName=Html&amp;amp;version=12313829&lt;/a&gt;&lt;br&gt;

&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; However, these release notes are just generated by JIRA, and iBatis 2.3.5&lt;br&gt;
&amp;gt;&amp;gt; does not appear to be released yet.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; It has been six months since this original message, and over a year since&lt;br&gt;
&amp;gt;&amp;gt; the 2.3.4 release (Sept 2008). Is there any chance of getting iBatis&lt;br&gt;
&amp;gt;&amp;gt; 2.3.5&lt;br&gt;
&amp;gt;&amp;gt; officially released soon?&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; I also tried downloading the source and building it. It won&amp;#39;t compile&lt;br&gt;
&amp;gt;&amp;gt; with&lt;br&gt;
&amp;gt;&amp;gt; Java 6, or Java 5 (it looks like it provides implementations of&lt;br&gt;
&amp;gt;&amp;gt; java.sql.ResultSet and java.sql.DataSource that aren&amp;#39;t Java 5 or Java 6&lt;br&gt;
&amp;gt;&amp;gt; compliant).&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; [INFO] Compilation failure&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; R:\ibatis\ibatis-2.3.5\ibatis-2-core\src\com\ibatis\sqlmap\engine\type\CallableStatementResultSet.java:[29,7]&lt;br&gt;
&amp;gt;&amp;gt; com.ibatis.sqlmap.engine.type.Callab&lt;br&gt;
&amp;gt;&amp;gt; leStatementResultSet is not abstract and does not override abstract&lt;br&gt;
&amp;gt;&amp;gt; method&lt;br&gt;
&amp;gt;&amp;gt; updateNClob(java.lang.String,java.io.Reader) in java.sql.ResultSet&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; R:\ibatis\ibatis-2.3.5\ibatis-2-core\src\com\ibatis\common\jdbc\SimpleDataSource.java:[52,7]&lt;br&gt;
&amp;gt;&amp;gt; com.ibatis.common.jdbc.SimpleDataSource is not abstra&lt;br&gt;
&amp;gt;&amp;gt; ct and does not override abstract method isWrapperFor(java.lang.Class&amp;lt;?&amp;gt;)&lt;br&gt;
&amp;gt;&amp;gt; in&lt;br&gt;
&amp;gt;&amp;gt; java.sql.Wrapper&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; I could try building with Java 1.4; however, Java 1.4 was end-of-life&lt;br&gt;
&amp;gt;&amp;gt; October 2008. FYI, Java 5 was also end-of-life October 2009.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://java.sun.com/products/archive/eol.policy.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/archive/eol.policy.html&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Someone really should update the code to compile under Java 6 (maybe with&lt;br&gt;
&amp;gt;&amp;gt; a&lt;br&gt;
&amp;gt;&amp;gt; source=1.6 and target=1.5). If I did the work for this and submitted a&lt;br&gt;
&amp;gt;&amp;gt; patch, would someone apply it to the trunk (and then maybe do a release)?&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks!&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; -J.C.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; 2009/6/5 原田太輔 &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798396&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;keenbeauty@...&lt;/a&gt;&amp;gt;:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Dear  Committers&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; We are using &amp;quot;iBATIS for java&amp;quot; latest release version. That&amp;#39;s jar is&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; ibatis-2.3.4.726.jar.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; And Now We are facing trouble in our project for ibatis-540&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; (&lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-540&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-540&lt;/a&gt;).&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Do you have any idea about when we can get next version which is&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; &amp;quot;iBATIS for Java 2.3.5&amp;quot; ?&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS/fixforversion/12313829&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS/fixforversion/12313829&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Best regards.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Dai&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26796226.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26796226.html&lt;/a&gt;&lt;br&gt;

&amp;gt;&amp;gt; Sent from the iBATIS - User - Java mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798396&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798396&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26798300.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26798300.html&lt;/a&gt;&lt;br&gt;

&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;Sent from the iBATIS - User - Java mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798396&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798396&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26798396.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26798300</id>
	<title>Re: When can we get next version which is &quot;iBATIS for Java 2.3.5&quot; ?</title>
	<published>2009-12-15T09:15:03Z</published>
	<updated>2009-12-15T09:15:03Z</updated>
	<author>
		<name>J.C.</name>
	</author>
	<content type="html">Ah, I had a jdk\bin in the path that was Java 5, but JAVA_HOME was set to a Java 6 JDK. So I guess the build requires not just that a Java 5 version be in the path first, but rather that JAVA_HOME is set to the JDK you want it to use to build.
&lt;br&gt;&lt;br&gt;Okay, so I just did a mvn package and it built and tested successfully. :) I got an artifact, ibatis-sqlmap-SNAPSHOT-r890827.jar as the result in the target directory.
&lt;br&gt;&lt;br&gt;So, two questions then:
&lt;br&gt;1) Can we get an official release of iBatis 2.3.5?
&lt;br&gt;2) Can you add support for Java 6, since 5 is officially past its end-of-life as of a few months ago? Here we've got some wrappers that are Java 6 (and JDBC 4.0 compliant), but will also run against Java 5 (and JDBC 3.5 too, it's not that difficult to use reflection for the few delegate methods that need it).
&lt;br&gt;&lt;br&gt;-J.C.
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Clinton Begin wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;It does compile under Java 5. &amp;nbsp;That's the release it's built for. &amp;nbsp;Was your
&lt;br&gt;JAVA_HOME env var set correctly?
&lt;br&gt;&lt;br&gt;Clinton
&lt;br&gt;&lt;br&gt;On Tue, Dec 15, 2009 at 9:03 AM, J.C. &amp;lt;jchamlin@gmail.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; First, I apologize in advance for resurrecting an old thread, but its
&lt;br&gt;&amp;gt; content
&lt;br&gt;&amp;gt; still seems very relevant.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I went looking for an updated version of iBatis 2.3.4 that addresses this
&lt;br&gt;&amp;gt; issue:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-517&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-517&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It looks like in the &amp;quot;release notes&amp;quot; for iBatis 2.3.5 it is listed as
&lt;br&gt;&amp;gt; fixed:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10601&amp;styleName=Html&amp;version=12313829&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10601&amp;styleName=Html&amp;version=12313829&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; However, these release notes are just generated by JIRA, and iBatis 2.3.5
&lt;br&gt;&amp;gt; does not appear to be released yet.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It has been six months since this original message, and over a year since
&lt;br&gt;&amp;gt; the 2.3.4 release (Sept 2008). Is there any chance of getting iBatis 2.3.5
&lt;br&gt;&amp;gt; officially released soon?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I also tried downloading the source and building it. It won't compile with
&lt;br&gt;&amp;gt; Java 6, or Java 5 (it looks like it provides implementations of
&lt;br&gt;&amp;gt; java.sql.ResultSet and java.sql.DataSource that aren't Java 5 or Java 6
&lt;br&gt;&amp;gt; compliant).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [INFO] Compilation failure
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; R:\ibatis\ibatis-2.3.5\ibatis-2-core\src\com\ibatis\sqlmap\engine\type\CallableStatementResultSet.java:[29,7]
&lt;br&gt;&amp;gt; com.ibatis.sqlmap.engine.type.Callab
&lt;br&gt;&amp;gt; leStatementResultSet is not abstract and does not override abstract method
&lt;br&gt;&amp;gt; updateNClob(java.lang.String,java.io.Reader) in java.sql.ResultSet
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; R:\ibatis\ibatis-2.3.5\ibatis-2-core\src\com\ibatis\common\jdbc\SimpleDataSource.java:[52,7]
&lt;br&gt;&amp;gt; com.ibatis.common.jdbc.SimpleDataSource is not abstra
&lt;br&gt;&amp;gt; ct and does not override abstract method isWrapperFor(java.lang.Class&amp;lt;?&amp;gt;)
&lt;br&gt;&amp;gt; in
&lt;br&gt;&amp;gt; java.sql.Wrapper
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I could try building with Java 1.4; however, Java 1.4 was end-of-life
&lt;br&gt;&amp;gt; October 2008. FYI, Java 5 was also end-of-life October 2009.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://java.sun.com/products/archive/eol.policy.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/archive/eol.policy.html&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Someone really should update the code to compile under Java 6 (maybe with a
&lt;br&gt;&amp;gt; source=1.6 and target=1.5). If I did the work for this and submitted a
&lt;br&gt;&amp;gt; patch, would someone apply it to the trunk (and then maybe do a release)?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -J.C.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 2009/6/5 原田太輔 &amp;lt;keenbeauty@gmail.com&amp;gt;:
&lt;br&gt;&amp;gt; &amp;gt; Dear &amp;nbsp;Committers
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; We are using &amp;quot;iBATIS for java&amp;quot; latest release version. That's jar is
&lt;br&gt;&amp;gt; &amp;gt; ibatis-2.3.4.726.jar.
&lt;br&gt;&amp;gt; &amp;gt; And Now We are facing trouble in our project for ibatis-540
&lt;br&gt;&amp;gt; &amp;gt; (&lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-540&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-540&lt;/a&gt;).
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Do you have any idea about when we can get next version which is
&lt;br&gt;&amp;gt; &amp;gt; &amp;quot;iBATIS for Java 2.3.5&amp;quot; ?
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS/fixforversion/12313829&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS/fixforversion/12313829&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Best regards.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Dai
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26796226.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26796226.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
&lt;br&gt;&amp;gt; For additional commands, e-mail: user-java-help@ibatis.apache.org
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26798300.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26798125</id>
	<title>Re: When can we get next version which is &quot;iBATIS for Java 2.3.5&quot; ?</title>
	<published>2009-12-15T09:03:22Z</published>
	<updated>2009-12-15T09:03:22Z</updated>
	<author>
		<name>Clinton Begin</name>
	</author>
	<content type="html">It does compile under Java 5. &amp;nbsp;That&amp;#39;s the release it&amp;#39;s built for. &amp;nbsp;Was your JAVA_HOME env var set correctly?&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Clinton&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Dec 15, 2009 at 9:03 AM, J.C. &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798125&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jchamlin@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;&lt;br&gt;
First, I apologize in advance for resurrecting an old thread, but its content&lt;br&gt;
still seems very relevant.&lt;br&gt;
&lt;br&gt;
I went looking for an updated version of iBatis 2.3.4 that addresses this&lt;br&gt;
issue:&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-517&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-517&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
It looks like in the &amp;quot;release notes&amp;quot; for iBatis 2.3.5 it is listed as fixed:&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10601&amp;amp;styleName=Html&amp;amp;version=12313829&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10601&amp;amp;styleName=Html&amp;amp;version=12313829&lt;/a&gt;&lt;br&gt;

&lt;br&gt;
However, these release notes are just generated by JIRA, and iBatis 2.3.5&lt;br&gt;
does not appear to be released yet.&lt;br&gt;
&lt;br&gt;
It has been six months since this original message, and over a year since&lt;br&gt;
the 2.3.4 release (Sept 2008). Is there any chance of getting iBatis 2.3.5&lt;br&gt;
officially released soon?&lt;br&gt;
&lt;br&gt;
I also tried downloading the source and building it. It won&amp;#39;t compile with&lt;br&gt;
Java 6, or Java 5 (it looks like it provides implementations of&lt;br&gt;
java.sql.ResultSet and java.sql.DataSource that aren&amp;#39;t Java 5 or Java 6&lt;br&gt;
compliant).&lt;br&gt;
&lt;br&gt;
[INFO] Compilation failure&lt;br&gt;
&lt;br&gt;
R:\ibatis\ibatis-2.3.5\ibatis-2-core\src\com\ibatis\sqlmap\engine\type\CallableStatementResultSet.java:[29,7]&lt;br&gt;
com.ibatis.sqlmap.engine.type.Callab&lt;br&gt;
leStatementResultSet is not abstract and does not override abstract method&lt;br&gt;
updateNClob(java.lang.String,java.io.Reader) in java.sql.ResultSet&lt;br&gt;
&lt;br&gt;
R:\ibatis\ibatis-2.3.5\ibatis-2-core\src\com\ibatis\common\jdbc\SimpleDataSource.java:[52,7]&lt;br&gt;
com.ibatis.common.jdbc.SimpleDataSource is not abstra&lt;br&gt;
ct and does not override abstract method isWrapperFor(java.lang.Class&amp;lt;?&amp;gt;) in&lt;br&gt;
java.sql.Wrapper&lt;br&gt;
&lt;br&gt;
I could try building with Java 1.4; however, Java 1.4 was end-of-life&lt;br&gt;
October 2008. FYI, Java 5 was also end-of-life October 2009.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://java.sun.com/products/archive/eol.policy.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/archive/eol.policy.html&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Someone really should update the code to compile under Java 6 (maybe with a&lt;br&gt;
source=1.6 and target=1.5). If I did the work for this and submitted a&lt;br&gt;
patch, would someone apply it to the trunk (and then maybe do a release)?&lt;br&gt;
&lt;br&gt;
Thanks!&lt;br&gt;
&lt;br&gt;
-J.C.&lt;br&gt;
&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
2009/6/5 原田太輔 &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798125&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;keenbeauty@...&lt;/a&gt;&amp;gt;:&lt;br&gt;
&amp;gt; Dear &amp;nbsp;Committers&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; We are using &amp;quot;iBATIS for java&amp;quot; latest release version. That&amp;#39;s jar is&lt;br&gt;
&amp;gt; ibatis-2.3.4.726.jar.&lt;br&gt;
&amp;gt; And Now We are facing trouble in our project for ibatis-540&lt;br&gt;
&amp;gt; (&lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-540&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-540&lt;/a&gt;).&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Do you have any idea about when we can get next version which is&lt;br&gt;
&amp;gt; &amp;quot;iBATIS for Java 2.3.5&amp;quot; ?&lt;br&gt;
&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS/fixforversion/12313829&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS/fixforversion/12313829&lt;/a&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Best regards.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Dai&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26796226.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26796226.html&lt;/a&gt;&lt;br&gt;

Sent from the iBATIS - User - Java mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798125&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26798125&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26798125.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26796226</id>
	<title>Re: When can we get next version which is &quot;iBATIS for Java 2.3.5&quot; ?</title>
	<published>2009-12-15T08:03:49Z</published>
	<updated>2009-12-15T08:03:49Z</updated>
	<author>
		<name>J.C.</name>
	</author>
	<content type="html">First, I apologize in advance for resurrecting an old thread, but its content still seems very relevant.
&lt;br&gt;&lt;br&gt;I went looking for an updated version of iBatis 2.3.4 that addresses this issue:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-517&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-517&lt;/a&gt;&lt;br&gt;&lt;br&gt;It looks like in the &amp;quot;release notes&amp;quot; for iBatis 2.3.5 it is listed as fixed:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10601&amp;styleName=Html&amp;version=12313829&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10601&amp;styleName=Html&amp;version=12313829&lt;/a&gt;&lt;br&gt;&lt;br&gt;However, these release notes are just generated by JIRA, and iBatis 2.3.5 does not appear to be released yet.
&lt;br&gt;&lt;br&gt;It has been six months since this original message, and over a year since the 2.3.4 release (Sept 2008). Is there any chance of getting iBatis 2.3.5 officially released soon?
&lt;br&gt;&lt;br&gt;I also tried downloading the source and building it. It won't compile with Java 6, or Java 5 (it looks like it provides implementations of java.sql.ResultSet and java.sql.DataSource that aren't Java 5 or Java 6 compliant).
&lt;br&gt;&lt;br&gt;[INFO] Compilation failure
&lt;br&gt;&lt;br&gt;R:\ibatis\ibatis-2.3.5\ibatis-2-core\src\com\ibatis\sqlmap\engine\type\CallableStatementResultSet.java:[29,7] com.ibatis.sqlmap.engine.type.Callab
&lt;br&gt;leStatementResultSet is not abstract and does not override abstract method updateNClob(java.lang.String,java.io.Reader) in java.sql.ResultSet
&lt;br&gt;&lt;br&gt;R:\ibatis\ibatis-2.3.5\ibatis-2-core\src\com\ibatis\common\jdbc\SimpleDataSource.java:[52,7] com.ibatis.common.jdbc.SimpleDataSource is not abstra
&lt;br&gt;ct and does not override abstract method isWrapperFor(java.lang.Class&amp;lt;?&amp;gt;) in java.sql.Wrapper
&lt;br&gt;&lt;br&gt;I could try building with Java 1.4; however, Java 1.4 was end-of-life October 2008. FYI, Java 5 was also end-of-life October 2009.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://java.sun.com/products/archive/eol.policy.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/archive/eol.policy.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Someone really should update the code to compile under Java 6 (maybe with a source=1.6 and target=1.5). If I did the work for this and submitted a patch, would someone apply it to the trunk (and then maybe do a release)?
&lt;br&gt;&lt;br&gt;Thanks!
&lt;br&gt;&lt;br&gt;-J.C.
&lt;br&gt;&lt;br&gt;2009/6/5 原田太輔 &amp;lt;keenbeauty@gmail.com&amp;gt;:
&lt;br&gt;&amp;gt; Dear &amp;nbsp;Committers
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; We are using &amp;quot;iBATIS for java&amp;quot; latest release version. That's jar is
&lt;br&gt;&amp;gt; ibatis-2.3.4.726.jar.
&lt;br&gt;&amp;gt; And Now We are facing trouble in our project for ibatis-540
&lt;br&gt;&amp;gt; (&lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-540&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-540&lt;/a&gt;).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Do you have any idea about when we can get next version which is
&lt;br&gt;&amp;gt; &amp;quot;iBATIS for Java 2.3.5&amp;quot; ?
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS/fixforversion/12313829&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS/fixforversion/12313829&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Best regards.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Dai
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;/quote&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/When-can-we-get-next-version-which-is-%22iBATIS-for-Java-2.3.5%22---tp23889479p26796226.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26788251</id>
	<title>Re: logging sql statements</title>
	<published>2009-12-14T18:02:51Z</published>
	<updated>2009-12-14T18:02:51Z</updated>
	<author>
		<name>Clinton Begin</name>
	</author>
	<content type="html">Perhaps no documentation on that subject, but Page 2 reads:&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;-----------------------------------------------&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;/span&gt;Help make this documentation better…&lt;br&gt;
&lt;br&gt;If you find this documentation lacking in any way, or missing documentation for a feature, then the best thing to do is learn about it and then write the documentation yourself!&lt;br&gt;&lt;br&gt;We accept public documentation contributions through our wiki at:&lt;br&gt;
&lt;br&gt;&lt;a href=&quot;http://opensource.atlassian.com/confluence/oss/display/IBATIS/Contribute+Documentation&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://opensource.atlassian.com/confluence/oss/display/IBATIS/Contribute+Documentation&lt;/a&gt;&lt;br&gt;&lt;br&gt;You’re the best author of this documentation, people like you have to read it!&lt;br&gt;
&lt;/b&gt;-----------------------------------------------&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Of course, these comments are welcome on this list too, but definitely post it to the wiki as well. &lt;/div&gt;&lt;div&gt;&lt;br&gt;Cheers,  :-)  &lt;br&gt;Clinton&lt;br&gt;&lt;br&gt;On Mon, Dec 14, 2009 at 6:29 PM, Stephen Friedrich &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788251&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;stephen.friedrich@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;&amp;gt; I haven&amp;#39;t found any documentation either, but had to refer to the source code to find usages of Loggers.&lt;br&gt;&amp;gt; This log category can be valuable, too:&lt;br&gt;&amp;gt;    &amp;lt;category name=&amp;quot;com.ibatis&amp;quot; additivity=&amp;quot;false&amp;quot;&amp;gt;&lt;br&gt;
&amp;gt;        &amp;lt;priority value=&amp;quot;debug&amp;quot;/&amp;gt;&lt;br&gt;&amp;gt;    &amp;lt;/category&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; -----Ursprüngliche Nachricht-----&lt;br&gt;&amp;gt; Von: Rick.Wellman [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788251&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Rick.Wellman@...&lt;/a&gt;]&lt;br&gt;
&amp;gt; Gesendet: Dienstag, 15. Dezember 2009 00:56&lt;br&gt;&amp;gt; An: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788251&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;&lt;br&gt;&amp;gt; Betreff: RE: logging sql statements&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; iBatis relies on logging of the underlying JDBC statements which is documented (somewhere).&lt;br&gt;
&amp;gt; We use the following settings in our log4j.xml file, adjust to your liking:&lt;br&gt;&amp;gt;    &amp;lt;!-- iBATIS SQL statements --&amp;gt;&lt;br&gt;&amp;gt;    &amp;lt;category name=&amp;quot;java.sql&amp;quot;&amp;gt;&lt;br&gt;&amp;gt;      &amp;lt;priority value=&amp;quot;info&amp;quot; /&amp;gt;&lt;br&gt;
&amp;gt;    &amp;lt;/category&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;    &amp;lt;category name=&amp;quot;java.sql.ResultSet&amp;quot;&amp;gt;&lt;br&gt;&amp;gt;      &amp;lt;priority value=&amp;quot;info&amp;quot; /&amp;gt;&lt;br&gt;&amp;gt;    &amp;lt;/category&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; -----Original Message-----&lt;br&gt;
&amp;gt; From: Trenton D. Adams [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788251&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trenta@...&lt;/a&gt;]&lt;br&gt;&amp;gt; Sent: Monday, December 14, 2009 5:51 PM&lt;br&gt;&amp;gt; To: user-java&lt;br&gt;&amp;gt; Subject: logging sql statements&lt;br&gt;&amp;gt;&lt;br&gt;
&amp;gt; Hi Guys,&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; I&amp;#39;ve searched the net like crazy, and there doesn&amp;#39;t seem to be anything reasonable describing how to have iBatis print out the parsed SQL that is being run, during an error.&lt;br&gt;&amp;gt;&lt;br&gt;
&amp;gt; Is this possible?&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; Currently I tried the following, to no avail...&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; LogFactory.selectLog4JLogging();&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; log4j.logger.com.ibatis=DEBUG&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; Trenton D. Adams&lt;br&gt;&amp;gt; Systems Analyst/Web Software Engineer&lt;br&gt;
&amp;gt; Navy Penguins at your service!&lt;br&gt;&amp;gt; Athabasca University&lt;br&gt;&amp;gt; (780) 675-6195&lt;br&gt;&amp;gt; :wq!&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; __&lt;br&gt;&amp;gt;    This communication is intended for the use of the recipient to whom it&lt;br&gt;&amp;gt;    is addressed, and may contain confidential, personal, and or privileged&lt;br&gt;
&amp;gt;    information. Please contact us immediately if you are not the intended&lt;br&gt;&amp;gt;    recipient of this communication, and do not copy, distribute, or take&lt;br&gt;&amp;gt;    action relying on it. Any communications received in error, or&lt;br&gt;
&amp;gt;    subsequent reply, should be deleted or destroyed.&lt;br&gt;&amp;gt; ---&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788251&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788251&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logging-sql-statements-tp26787195p26788251.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26788232</id>
	<title>Re: Null Pointer Exception on Malformed &lt;foreach&gt;</title>
	<published>2009-12-14T17:59:13Z</published>
	<updated>2009-12-14T17:59:13Z</updated>
	<author>
		<name>Clinton Begin</name>
	</author>
	<content type="html">Yep, bug.  NPEs are always bugs -- we don&amp;#39;t consider them &amp;quot;acceptable&amp;quot;.  Can you submit this as a Jira ticket?&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Thanks much!&lt;/div&gt;&lt;div&gt;Clinton&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Mon, Dec 14, 2009 at 12:06 PM, Soks86 &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788232&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;michael.chrostowski@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;&lt;br&gt;
Hi,&lt;br&gt;
&lt;br&gt;
I was using &amp;lt;foreach&amp;gt; in an &amp;lt;insert&amp;gt; (within a &amp;lt;mapper&amp;gt;) statement and I got&lt;br&gt;
the following NPE:&lt;br&gt;
&lt;br&gt;
Caused by: java.lang.NullPointerException&lt;br&gt;
        at java.util.regex.Pattern.&amp;lt;init&amp;gt;(Pattern.java:1132)&lt;br&gt;
        at java.util.regex.Pattern.compile(Pattern.java:823)&lt;br&gt;
        at java.lang.String.replaceFirst(String.java:2146)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext$1.handleToken(ForEachSqlNode.java:116)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.parsing.GenericTokenParser.parse(GenericTokenParser.java:29)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext.appendSql(ForEachSqlNode.java:121)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.builder.xml.dynamic.TextSqlNode.apply(TextSqlNode.java:18)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode.apply(ForEachSqlNode.java:51)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.builder.xml.dynamic.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:22)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:198)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.executor.statement.BaseStatementHandler.&amp;lt;init&amp;gt;(BaseStatementHandler.java:45)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.executor.statement.PreparedStatementHandler.&amp;lt;init&amp;gt;(PreparedStatementHandler.java:16)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.executor.statement.RoutingStatementHandler.&amp;lt;init&amp;gt;(RoutingStatementHandler.java:27)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:192)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:27)&lt;br&gt;
        at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:65)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:39)&lt;br&gt;
        at&lt;br&gt;
org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:93)&lt;br&gt;
        ... 26 more&lt;br&gt;
&lt;br&gt;
This occurred when I didn&amp;#39;t specify the item field in my &amp;lt;foreach&amp;gt; tag. Once&lt;br&gt;
I specify item=&amp;quot;something&amp;quot; then the NPE goes away. Changing the statement&lt;br&gt;
within the &amp;lt;foreach&amp;gt; did not seem to effect this. Bug?&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://old.nabble.com/Null-Pointer-Exception-on-Malformed-%3Cforeach%3E-tp26779961p26779961.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Null-Pointer-Exception-on-Malformed-%3Cforeach%3E-tp26779961p26779961.html&lt;/a&gt;&lt;br&gt;

Sent from the iBATIS - User - Java mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788232&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788232&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Null-Pointer-Exception-on-Malformed-%3Cforeach%3E-tp26779961p26788232.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26788024</id>
	<title>AW: logging sql statements</title>
	<published>2009-12-14T17:29:14Z</published>
	<updated>2009-12-14T17:29:14Z</updated>
	<author>
		<name>stephen.friedrich</name>
	</author>
	<content type="html">I haven't found any documentation either, but had to refer to the source code to find usages of Loggers.
&lt;br&gt;This log category can be valuable, too:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;category name=&amp;quot;com.ibatis&amp;quot; additivity=&amp;quot;false&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;priority value=&amp;quot;debug&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/category&amp;gt;
&lt;br&gt;&lt;br&gt;-----Ursprüngliche Nachricht-----
&lt;br&gt;Von: Rick.Wellman [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788024&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Rick.Wellman@...&lt;/a&gt;] 
&lt;br&gt;Gesendet: Dienstag, 15. Dezember 2009 00:56
&lt;br&gt;An: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788024&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java@...&lt;/a&gt;
&lt;br&gt;Betreff: RE: logging sql statements
&lt;br&gt;&lt;br&gt;iBatis relies on logging of the underlying JDBC statements which is documented (somewhere).
&lt;br&gt;We use the following settings in our log4j.xml file, adjust to your liking:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;!-- iBATIS SQL statements --&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;category name=&amp;quot;java.sql&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;priority value=&amp;quot;info&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/category&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;category name=&amp;quot;java.sql.ResultSet&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;priority value=&amp;quot;info&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/category&amp;gt;
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Trenton D. Adams [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788024&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trenta@...&lt;/a&gt;] 
&lt;br&gt;Sent: Monday, December 14, 2009 5:51 PM
&lt;br&gt;To: user-java
&lt;br&gt;Subject: logging sql statements
&lt;br&gt;&lt;br&gt;Hi Guys,
&lt;br&gt;&lt;br&gt;I've searched the net like crazy, and there doesn't seem to be anything reasonable describing how to have iBatis print out the parsed SQL that is being run, during an error.
&lt;br&gt;&lt;br&gt;Is this possible?
&lt;br&gt;&lt;br&gt;Currently I tried the following, to no avail...
&lt;br&gt;&lt;br&gt;LogFactory.selectLog4JLogging();
&lt;br&gt;&lt;br&gt;log4j.logger.com.ibatis=DEBUG
&lt;br&gt;&lt;br&gt;Trenton D. Adams
&lt;br&gt;Systems Analyst/Web Software Engineer
&lt;br&gt;Navy Penguins at your service!
&lt;br&gt;Athabasca University
&lt;br&gt;(780) 675-6195
&lt;br&gt;:wq!
&lt;br&gt;&lt;br&gt;__ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; This communication is intended for the use of the recipient to whom it
&lt;br&gt;&amp;nbsp; &amp;nbsp; is addressed, and may contain confidential, personal, and or privileged
&lt;br&gt;&amp;nbsp; &amp;nbsp; information. Please contact us immediately if you are not the intended
&lt;br&gt;&amp;nbsp; &amp;nbsp; recipient of this communication, and do not copy, distribute, or take
&lt;br&gt;&amp;nbsp; &amp;nbsp; action relying on it. Any communications received in error, or
&lt;br&gt;&amp;nbsp; &amp;nbsp; subsequent reply, should be deleted or destroyed.
&lt;br&gt;---
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788024&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788024&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logging-sql-statements-tp26787195p26788024.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26787253</id>
	<title>RE: logging sql statements</title>
	<published>2009-12-14T15:55:42Z</published>
	<updated>2009-12-14T15:55:42Z</updated>
	<author>
		<name>Rick.Wellman</name>
	</author>
	<content type="html">iBatis relies on logging of the underlying JDBC statements which is documented (somewhere).
&lt;br&gt;We use the following settings in our log4j.xml file, adjust to your liking:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;!-- iBATIS SQL statements --&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;category name=&amp;quot;java.sql&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;priority value=&amp;quot;info&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/category&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;category name=&amp;quot;java.sql.ResultSet&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;priority value=&amp;quot;info&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/category&amp;gt;
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Trenton D. Adams [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26787253&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trenta@...&lt;/a&gt;] 
&lt;br&gt;Sent: Monday, December 14, 2009 5:51 PM
&lt;br&gt;To: user-java
&lt;br&gt;Subject: logging sql statements
&lt;br&gt;&lt;br&gt;Hi Guys,
&lt;br&gt;&lt;br&gt;I've searched the net like crazy, and there doesn't seem to be anything reasonable describing how to have iBatis print out the parsed SQL that is being run, during an error.
&lt;br&gt;&lt;br&gt;Is this possible?
&lt;br&gt;&lt;br&gt;Currently I tried the following, to no avail...
&lt;br&gt;&lt;br&gt;LogFactory.selectLog4JLogging();
&lt;br&gt;&lt;br&gt;log4j.logger.com.ibatis=DEBUG
&lt;br&gt;&lt;br&gt;Trenton D. Adams
&lt;br&gt;Systems Analyst/Web Software Engineer
&lt;br&gt;Navy Penguins at your service!
&lt;br&gt;Athabasca University
&lt;br&gt;(780) 675-6195
&lt;br&gt;:wq!
&lt;br&gt;&lt;br&gt;__ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; This communication is intended for the use of the recipient to whom it
&lt;br&gt;&amp;nbsp; &amp;nbsp; is addressed, and may contain confidential, personal, and or privileged
&lt;br&gt;&amp;nbsp; &amp;nbsp; information. Please contact us immediately if you are not the intended
&lt;br&gt;&amp;nbsp; &amp;nbsp; recipient of this communication, and do not copy, distribute, or take
&lt;br&gt;&amp;nbsp; &amp;nbsp; action relying on it. Any communications received in error, or
&lt;br&gt;&amp;nbsp; &amp;nbsp; subsequent reply, should be deleted or destroyed.
&lt;br&gt;---
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26787253&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26787253&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logging-sql-statements-tp26787195p26787253.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26787195</id>
	<title>logging sql statements</title>
	<published>2009-12-14T15:50:56Z</published>
	<updated>2009-12-14T15:50:56Z</updated>
	<author>
		<name>Trenton D. Adams</name>
	</author>
	<content type="html">Hi Guys,
&lt;br&gt;&lt;br&gt;I've searched the net like crazy, and there doesn't seem to be anything reasonable describing how to have iBatis print out the parsed SQL that is being run, during an error.
&lt;br&gt;&lt;br&gt;Is this possible?
&lt;br&gt;&lt;br&gt;Currently I tried the following, to no avail...
&lt;br&gt;&lt;br&gt;LogFactory.selectLog4JLogging();
&lt;br&gt;&lt;br&gt;log4j.logger.com.ibatis=DEBUG
&lt;br&gt;&lt;br&gt;Trenton D. Adams
&lt;br&gt;Systems Analyst/Web Software Engineer
&lt;br&gt;Navy Penguins at your service!
&lt;br&gt;Athabasca University
&lt;br&gt;(780) 675-6195
&lt;br&gt;:wq!
&lt;br&gt;&lt;br&gt;__ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; This communication is intended for the use of the recipient to whom it
&lt;br&gt;&amp;nbsp; &amp;nbsp; is addressed, and may contain confidential, personal, and or privileged
&lt;br&gt;&amp;nbsp; &amp;nbsp; information. Please contact us immediately if you are not the intended
&lt;br&gt;&amp;nbsp; &amp;nbsp; recipient of this communication, and do not copy, distribute, or take
&lt;br&gt;&amp;nbsp; &amp;nbsp; action relying on it. Any communications received in error, or
&lt;br&gt;&amp;nbsp; &amp;nbsp; subsequent reply, should be deleted or destroyed.
&lt;br&gt;---
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26787195&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26787195&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/logging-sql-statements-tp26787195p26787195.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26779961</id>
	<title>Null Pointer Exception on Malformed &lt;foreach&gt;</title>
	<published>2009-12-14T11:06:42Z</published>
	<updated>2009-12-14T11:06:42Z</updated>
	<author>
		<name>Soks86</name>
	</author>
	<content type="html">Hi, 
&lt;br&gt;&lt;br&gt;I was using &amp;lt;foreach&amp;gt; in an &amp;lt;insert&amp;gt; (within a &amp;lt;mapper&amp;gt;) statement and I got the following NPE: 
&lt;br&gt;&lt;br&gt;Caused by: java.lang.NullPointerException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.util.regex.Pattern.&amp;lt;init&amp;gt;(Pattern.java:1132)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.util.regex.Pattern.compile(Pattern.java:823)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.String.replaceFirst(String.java:2146)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext$1.handleToken(ForEachSqlNode.java:116)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.parsing.GenericTokenParser.parse(GenericTokenParser.java:29)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext.appendSql(ForEachSqlNode.java:121)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.builder.xml.dynamic.TextSqlNode.apply(TextSqlNode.java:18)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode.apply(ForEachSqlNode.java:51)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.builder.xml.dynamic.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:22)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:198)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.executor.statement.BaseStatementHandler.&amp;lt;init&amp;gt;(BaseStatementHandler.java:45)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.executor.statement.PreparedStatementHandler.&amp;lt;init&amp;gt;(PreparedStatementHandler.java:16)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.executor.statement.RoutingStatementHandler.&amp;lt;init&amp;gt;(RoutingStatementHandler.java:27)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:192)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:27)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:65)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:39)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:93)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... 26 more
&lt;br&gt;&lt;br&gt;This occurred when I didn't specify the item field in my &amp;lt;foreach&amp;gt; tag. Once I specify item=&amp;quot;something&amp;quot; then the NPE goes away. Changing the statement within the &amp;lt;foreach&amp;gt; did not seem to effect this. Bug? </content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Null-Pointer-Exception-on-Malformed-%3Cforeach%3E-tp26779961p26779961.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26778593</id>
	<title>RE: iterate not working</title>
	<published>2009-12-14T06:25:58Z</published>
	<updated>2009-12-14T06:25:58Z</updated>
	<author>
		<name>Poitras Christian</name>
	</author>
	<content type="html">The remove first prepend is intended to remove the first prepend of a sub-condition.
&lt;br&gt;For exemple:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;iterate prepend=&amp;quot;,&amp;quot; removeFirstPrepend=&amp;quot;true&amp;quot; &amp;nbsp;property=&amp;quot;name&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;isNotNull prepend=&amp;quot;removeMe&amp;quot; property=&amp;quot;name[]&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;substr(upper(#name[].firstName#),1,1)||upper(#name[].lastName#)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/isNotNull&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/iterate&amp;gt;
&lt;br&gt;&lt;br&gt;What you want is:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;iterate separator=&amp;quot;,&amp;quot; &amp;nbsp;property=&amp;quot;name&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;substr(upper(#name[].firstName#),1,1)||upper(#name[].lastName#)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/iterate&amp;gt;
&lt;br&gt;&lt;br&gt;Christian
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Trenton D. Adams [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26778593&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;trenta@...&lt;/a&gt;] 
&lt;br&gt;Sent: Friday, December 11, 2009 6:32 PM
&lt;br&gt;To: user-java
&lt;br&gt;Subject: iterate not working
&lt;br&gt;&lt;br&gt;Hi Guys,
&lt;br&gt;&lt;br&gt;I am using 2.3.0.
&lt;br&gt;&lt;br&gt;I'm wondering why this does not work...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IN (
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;iterate prepend=&amp;quot;,&amp;quot; removeFirstPrepend=&amp;quot;true&amp;quot; &amp;nbsp;property=&amp;quot;name&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;substr(upper(#name[].firstName#),1,1)||upper(#name[].lastName#)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/iterate&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )
&lt;br&gt;&lt;br&gt;But this does...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IN (''
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;iterate prepend=&amp;quot;,&amp;quot; &amp;nbsp;property=&amp;quot;name&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;substr(upper(#name[].firstName#),1,1)||upper(#name[].lastName#)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/iterate&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )
&lt;br&gt;&lt;br&gt;&lt;br&gt;Trenton D. Adams
&lt;br&gt;Systems Analyst/Web Software Engineer
&lt;br&gt;Navy Penguins at your service!
&lt;br&gt;Athabasca University
&lt;br&gt;(780) 675-6195
&lt;br&gt;:wq!
&lt;br&gt;&lt;br&gt;__ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; This communication is intended for the use of the recipient to whom it
&lt;br&gt;&amp;nbsp; &amp;nbsp; is addressed, and may contain confidential, personal, and or privileged
&lt;br&gt;&amp;nbsp; &amp;nbsp; information. Please contact us immediately if you are not the intended
&lt;br&gt;&amp;nbsp; &amp;nbsp; recipient of this communication, and do not copy, distribute, or take
&lt;br&gt;&amp;nbsp; &amp;nbsp; action relying on it. Any communications received in error, or
&lt;br&gt;&amp;nbsp; &amp;nbsp; subsequent reply, should be deleted or destroyed.
&lt;br&gt;---
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26778593&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26778593&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26778593&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26778593&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/iterate-not-working-tp26753110p26778593.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26773236</id>
	<title>Re: Beta 6 Oracle Invalid column type: getCLOB not implemented</title>
	<published>2009-12-13T21:36:14Z</published>
	<updated>2009-12-13T21:36:14Z</updated>
	<author>
		<name>Guy Rouillier-2</name>
	</author>
	<content type="html">On 12/13/2009 3:26 PM, Jeff Butler wrote:
&lt;br&gt;&amp;gt; I believe I have found and fixed the error in iBATIS. &amp;nbsp;Please try
&lt;br&gt;&amp;gt; building from SVN and let me know if the issue is resolved.
&lt;br&gt;&lt;br&gt;I built from head in SVN and it is working again for our application. 
&lt;br&gt;Thanks, I'll update the issue.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jeff Butler
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Fri, Dec 11, 2009 at 11:10 PM, Guy Rouillier&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;guyr-ml1@...&lt;/a&gt;&amp;gt; &amp;nbsp;wrote:
&lt;br&gt;&amp;gt;&amp;gt; I've posted an update to Jira issue IBATIS-712. &amp;nbsp;I can get this to fail
&lt;br&gt;&amp;gt;&amp;gt; repeatedly with a simple command line program, on either Windows or Linux,
&lt;br&gt;&amp;gt;&amp;gt; with either JDK 5 or JDK 6 and any Oracle driver appropriate for the JDK
&lt;br&gt;&amp;gt;&amp;gt; version. &amp;nbsp;We are using Oracle 10g 10.0.2.0.3.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Please let me know what else I can do to assist in debugging this. &amp;nbsp;This is
&lt;br&gt;&amp;gt;&amp;gt; an obvious showstopper for us to deploy our app with iBATIS.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On 12/10/2009 1:06 PM, Guy Rouillier wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On 12/10/2009 12:19 PM, Jeff Butler wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; JDBC 3 has always been a requirement. There was a change in this area
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; in ibatis but I don't recall the particulars right now. I'll need to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; do a bit of research to recall.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hmmm works on windows but not on linux? I'd double check to make sure
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that there is not an older driver sneaking into the mix on linux.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I created a simple JSP in the same Tomcat context as our application, to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; make sure it would load the same JDBC driver as our app. Here is what I
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; executed:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;%
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ... get a connection
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; DatabaseMetaData dmd = conn.getMetaData();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; aDriverVersion = dmd.getDriverVersion();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; %&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;p&amp;gt; &amp;nbsp;Driver version:&amp;lt;%= aDriverVersion %&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On both Windows and Linux, the result is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Driver version: 11.2.0.1.0
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Please let me know if I can help in any way to isolate this issue. Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/10/09, Guy Rouillier&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;guyr-ml1@...&lt;/a&gt;&amp;gt; &amp;nbsp;wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/10/2009 11:33 AM, Jeff Butler wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This method (getCLOB) is a JDBC 3 method. You must now use a driver
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that is JDBC 3 compliant.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm using the ojdbc6.jar driver from 11g (although our databases are
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 10g, the 11g drivers are required for JDK 6.) The Oracle JDBC FAQ says
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this about JDBC version support:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oracle 11.1.0 and 11.2.0 support:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Full support for JDBC 3.0 in the JDK 1.5 drivers.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Full support for JDBC 4.0 in the JDK 1.6 drivers with the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; exception of SQLXML which is not supported.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I wouldn't think the JDBC 3 requirement was introduced between Beta 5
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and Beta 6, right? The code works fine with the Beta 5 code.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The best hint I could find with some quick Googling is that getCLOB
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; should not be used to retrieve a VARCHAR column. All the character
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; columns in the table I supplied in the Jira issue are VARCHAR; the table
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; has no CLOB columns.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm also at a loss to figure out why everything works fine on Windows
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; but fails on Linux. Same Oracle driver, same JDK version, same Tomcat
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; version. Obviously, the VM is native code.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Something has changed between Beta 5 and Beta 6 to cause this.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/10/09, Guy Rouillier&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;guyr-ml1@...&lt;/a&gt;&amp;gt; &amp;nbsp;wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm getting a catastrophic failure with Beta 6 that does not happen
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; with
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Beta 5. I opened Jira issue IBATIS-712 for this:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-712:&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-712:&lt;/a&gt;&amp;nbsp;Oracle Invalid
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; column
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; type: getCLOB not implemented for class
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; oracle.jdbc.driver.T4CVarcharAccessor
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Guy Rouillier
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Guy Rouillier
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Guy Rouillier
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Guy Rouillier
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773236&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Beta-6-Oracle-Invalid-column-type%3A-getCLOB-not-implemented-tp26730053p26773236.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26773103</id>
	<title>Re: Beta 6 Oracle Invalid column type: getCLOB not implemented</title>
	<published>2009-12-13T21:12:01Z</published>
	<updated>2009-12-13T21:12:01Z</updated>
	<author>
		<name>Clinton Begin</name>
	</author>
	<content type="html">Yep, I think you got it Jeff.  That is so odd, how both Derby and HSQLDB don&amp;#39;t care if you use CLOB or String... regardless, it was a typo.  &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Thanks!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Clinton&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;
On Sun, Dec 13, 2009 at 1:26 PM, Jeff Butler &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jeffgbutler@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;
I believe I have found and fixed the error in iBATIS.  Please try&lt;br&gt;
building from SVN and let me know if the issue is resolved.&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;
Jeff Butler&lt;br&gt;
&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;
On Fri, Dec 11, 2009 at 11:10 PM, Guy Rouillier &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;guyr-ml1@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt; I&amp;#39;ve posted an update to Jira issue IBATIS-712.  I can get this to fail&lt;br&gt;
&amp;gt; repeatedly with a simple command line program, on either Windows or Linux,&lt;br&gt;
&amp;gt; with either JDK 5 or JDK 6 and any Oracle driver appropriate for the JDK&lt;br&gt;
&amp;gt; version.  We are using Oracle 10g 10.0.2.0.3.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Please let me know what else I can do to assist in debugging this.  This is&lt;br&gt;
&amp;gt; an obvious showstopper for us to deploy our app with iBATIS.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Thanks.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On 12/10/2009 1:06 PM, Guy Rouillier wrote:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; On 12/10/2009 12:19 PM, Jeff Butler wrote:&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; JDBC 3 has always been a requirement. There was a change in this area&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; in ibatis but I don&amp;#39;t recall the particulars right now. I&amp;#39;ll need to&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; do a bit of research to recall.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; Hmmm works on windows but not on linux? I&amp;#39;d double check to make sure&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; that there is not an older driver sneaking into the mix on linux.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; I created a simple JSP in the same Tomcat context as our application, to&lt;br&gt;
&amp;gt;&amp;gt; make sure it would load the same JDBC driver as our app. Here is what I&lt;br&gt;
&amp;gt;&amp;gt; executed:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;lt;%&lt;br&gt;
&amp;gt;&amp;gt; ... get a connection&lt;br&gt;
&amp;gt;&amp;gt; DatabaseMetaData dmd = conn.getMetaData();&lt;br&gt;
&amp;gt;&amp;gt; aDriverVersion = dmd.getDriverVersion();&lt;br&gt;
&amp;gt;&amp;gt; %&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;lt;p&amp;gt; Driver version: &amp;lt;%= aDriverVersion %&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; On both Windows and Linux, the result is&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Driver version: 11.2.0.1.0&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Please let me know if I can help in any way to isolate this issue. Thanks.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt; On 12/10/09, Guy Rouillier&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;guyr-ml1@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/10/2009 11:33 AM, Jeff Butler wrote:&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This method (getCLOB) is a JDBC 3 method. You must now use a driver&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that is JDBC 3 compliant.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; I&amp;#39;m using the ojdbc6.jar driver from 11g (although our databases are&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; 10g, the 11g drivers are required for JDK 6.) The Oracle JDBC FAQ says&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; this about JDBC version support:&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oracle 11.1.0 and 11.2.0 support:&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; Full support for JDBC 3.0 in the JDK 1.5 drivers.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; Full support for JDBC 4.0 in the JDK 1.6 drivers with the&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; exception of SQLXML which is not supported.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; I wouldn&amp;#39;t think the JDBC 3 requirement was introduced between Beta 5&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; and Beta 6, right? The code works fine with the Beta 5 code.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; The best hint I could find with some quick Googling is that getCLOB&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; should not be used to retrieve a VARCHAR column. All the character&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; columns in the table I supplied in the Jira issue are VARCHAR; the table&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; has no CLOB columns.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; I&amp;#39;m also at a loss to figure out why everything works fine on Windows&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; but fails on Linux. Same Oracle driver, same JDK version, same Tomcat&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; version. Obviously, the VM is native code.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; Something has changed between Beta 5 and Beta 6 to cause this.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/10/09, Guy Rouillier&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;guyr-ml1@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I&amp;#39;m getting a catastrophic failure with Beta 6 that does not happen&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; with&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Beta 5. I opened Jira issue IBATIS-712 for this:&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-712&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-712&lt;/a&gt;: Oracle Invalid&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; column&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; type: getCLOB not implemented for class&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; oracle.jdbc.driver.T4CVarcharAccessor&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Guy Rouillier&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; Guy Rouillier&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; --&lt;br&gt;
&amp;gt; Guy Rouillier&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773103&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Beta-6-Oracle-Invalid-column-type%3A-getCLOB-not-implemented-tp26730053p26773103.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26769416</id>
	<title>Re: Beta 6 Oracle Invalid column type: getCLOB not implemented</title>
	<published>2009-12-13T12:26:09Z</published>
	<updated>2009-12-13T12:26:09Z</updated>
	<author>
		<name>Jeff Butler-2</name>
	</author>
	<content type="html">I believe I have found and fixed the error in iBATIS. &amp;nbsp;Please try
&lt;br&gt;building from SVN and let me know if the issue is resolved.
&lt;br&gt;&lt;br&gt;Jeff Butler
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Fri, Dec 11, 2009 at 11:10 PM, Guy Rouillier &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;guyr-ml1@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I've posted an update to Jira issue IBATIS-712.  I can get this to fail
&lt;br&gt;&amp;gt; repeatedly with a simple command line program, on either Windows or Linux,
&lt;br&gt;&amp;gt; with either JDK 5 or JDK 6 and any Oracle driver appropriate for the JDK
&lt;br&gt;&amp;gt; version.  We are using Oracle 10g 10.0.2.0.3.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Please let me know what else I can do to assist in debugging this.  This is
&lt;br&gt;&amp;gt; an obvious showstopper for us to deploy our app with iBATIS.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On 12/10/2009 1:06 PM, Guy Rouillier wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On 12/10/2009 12:19 PM, Jeff Butler wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; JDBC 3 has always been a requirement. There was a change in this area
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; in ibatis but I don't recall the particulars right now. I'll need to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; do a bit of research to recall.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hmmm works on windows but not on linux? I'd double check to make sure
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; that there is not an older driver sneaking into the mix on linux.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I created a simple JSP in the same Tomcat context as our application, to
&lt;br&gt;&amp;gt;&amp;gt; make sure it would load the same JDBC driver as our app. Here is what I
&lt;br&gt;&amp;gt;&amp;gt; executed:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;%
&lt;br&gt;&amp;gt;&amp;gt; ... get a connection
&lt;br&gt;&amp;gt;&amp;gt; DatabaseMetaData dmd = conn.getMetaData();
&lt;br&gt;&amp;gt;&amp;gt; aDriverVersion = dmd.getDriverVersion();
&lt;br&gt;&amp;gt;&amp;gt; %&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;p&amp;gt; Driver version: &amp;lt;%= aDriverVersion %&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On both Windows and Linux, the result is
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Driver version: 11.2.0.1.0
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Please let me know if I can help in any way to isolate this issue. Thanks.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On 12/10/09, Guy Rouillier&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;guyr-ml1@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/10/2009 11:33 AM, Jeff Butler wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This method (getCLOB) is a JDBC 3 method. You must now use a driver
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that is JDBC 3 compliant.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm using the ojdbc6.jar driver from 11g (although our databases are
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 10g, the 11g drivers are required for JDK 6.) The Oracle JDBC FAQ says
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this about JDBC version support:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oracle 11.1.0 and 11.2.0 support:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Full support for JDBC 3.0 in the JDK 1.5 drivers.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Full support for JDBC 4.0 in the JDK 1.6 drivers with the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; exception of SQLXML which is not supported.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I wouldn't think the JDBC 3 requirement was introduced between Beta 5
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and Beta 6, right? The code works fine with the Beta 5 code.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The best hint I could find with some quick Googling is that getCLOB
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; should not be used to retrieve a VARCHAR column. All the character
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; columns in the table I supplied in the Jira issue are VARCHAR; the table
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; has no CLOB columns.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm also at a loss to figure out why everything works fine on Windows
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; but fails on Linux. Same Oracle driver, same JDK version, same Tomcat
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; version. Obviously, the VM is native code.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Something has changed between Beta 5 and Beta 6 to cause this.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/10/09, Guy Rouillier&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;guyr-ml1@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm getting a catastrophic failure with Beta 6 that does not happen
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; with
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Beta 5. I opened Jira issue IBATIS-712 for this:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/IBATIS-712:&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/IBATIS-712:&lt;/a&gt;&amp;nbsp;Oracle Invalid
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; column
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; type: getCLOB not implemented for class
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; oracle.jdbc.driver.T4CVarcharAccessor
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Guy Rouillier
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Guy Rouillier
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Guy Rouillier
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26769416&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Beta-6-Oracle-Invalid-column-type%3A-getCLOB-not-implemented-tp26730053p26769416.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26760091</id>
	<title>Re: Ibator and Microsoft Access</title>
	<published>2009-12-12T10:44:06Z</published>
	<updated>2009-12-12T10:44:06Z</updated>
	<author>
		<name>Larry Meadors</name>
	</author>
	<content type="html">Yes, the jdbc-odbc bridge is not really intended for real use, and
&lt;br&gt;sucks pretty bad.
&lt;br&gt;&lt;br&gt;Without knowing why you are using access, it's hard to recommend a
&lt;br&gt;course of action - if you can use a different DB, by all means, do.
&lt;br&gt;Access is hands down the crappiest choice you could make. :)
&lt;br&gt;&lt;br&gt;If you are using it because you have to (it's tied to another system
&lt;br&gt;that uses access directly), then you may need to look for a commercial
&lt;br&gt;driver. The jdbc-odbc bridge will not work.
&lt;br&gt;&lt;br&gt;If you are creating a new system, then look at postgresql, mysql, or derby.
&lt;br&gt;&lt;br&gt;Larry
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Sat, Dec 12, 2009 at 9:32 AM, Monky &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26760091&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;promiller@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hello,
&lt;br&gt;&amp;gt; I am having problems using Ibatis/Ibator (ibatis-2.3.4.726 and the latest
&lt;br&gt;&amp;gt; ibator as eclipse plugin installed via
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://ibatis.apache.org/tools/ibator&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ibatis.apache.org/tools/ibator&lt;/a&gt;) with a connection to Microsoft
&lt;br&gt;&amp;gt; Access.
&lt;br&gt;&amp;gt; When I use the Ibator eclipse Plugin to &amp;quot;Generate iBatis Artifacts&amp;quot; many
&lt;br&gt;&amp;gt; things get generated properly but I get the warnings:
&lt;br&gt;&amp;gt; &amp;quot;Generation Warnings Occured
&lt;br&gt;&amp;gt;  Cannot obtain primary key information from the database, generated objects
&lt;br&gt;&amp;gt; may be incomplete&amp;quot;
&lt;br&gt;&amp;gt; The second line appears once for every table.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I use the standard driver:
&lt;br&gt;&amp;gt; Driver: sun.jdbc.odbc.JdbcOdbcDriver
&lt;br&gt;&amp;gt; URL: jdbc:odbc:DRIVER={Microsoft Access Driver
&lt;br&gt;&amp;gt; (*.mdb)};DBQ=[ABSOLUTE_PATH_TO_MY_DB_FILE];DriverID=22
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I guess the sun JDBC-ODBC-Bridge does not fully support table meta data for
&lt;br&gt;&amp;gt; Mircosoft Access. Am I supposing correct?
&lt;br&gt;&amp;gt; Is there another (free) driver that could be used?
&lt;br&gt;&amp;gt; Is there a way to tell iBator about primary keys manually? (Something like:
&lt;br&gt;&amp;gt; every table has a &amp;quot;PKEY&amp;quot; column that is a integer auto increment primary key
&lt;br&gt;&amp;gt; field)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any help appretiates.
&lt;br&gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt; Sebastian
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://old.nabble.com/Ibator-and-Microsoft-Access-tp26758969p26758969.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/Ibator-and-Microsoft-Access-tp26758969p26758969.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26760091&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26760091&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26760091&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26760091&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;user-java-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Ibator-and-Microsoft-Access-tp26758969p26760091.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26758969</id>
	<title>Ibator and Microsoft Access</title>
	<published>2009-12-12T08:32:17Z</published>
	<updated>2009-12-12T08:32:17Z</updated>
	<author>
		<name>Monky</name>
	</author>
	<content type="html">Hello,
&lt;br&gt;I am having problems using Ibatis/Ibator (ibatis-2.3.4.726 and the latest ibator as eclipse plugin installed via &lt;a href=&quot;http://ibatis.apache.org/tools/ibator&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ibatis.apache.org/tools/ibator&lt;/a&gt;) with a connection to Microsoft Access.
&lt;br&gt;When I use the Ibator eclipse Plugin to &amp;quot;Generate iBatis Artifacts&amp;quot; many things get generated properly but I get the warnings:
&lt;br&gt;&amp;quot;Generation Warnings Occured
&lt;br&gt;&amp;nbsp; Cannot obtain primary key information from the database, generated objects may be incomplete&amp;quot;
&lt;br&gt;The second line appears once for every table.
&lt;br&gt;&lt;br&gt;I use the standard driver:
&lt;br&gt;Driver: sun.jdbc.odbc.JdbcOdbcDriver
&lt;br&gt;URL: jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=[ABSOLUTE_PATH_TO_MY_DB_FILE];DriverID=22
&lt;br&gt;&lt;br&gt;I guess the sun JDBC-ODBC-Bridge does not fully support table meta data for Mircosoft Access. Am I supposing correct?
&lt;br&gt;Is there another (free) driver that could be used?
&lt;br&gt;Is there a way to tell iBator about primary keys manually? (Something like: every table has a &amp;quot;PKEY&amp;quot; column that is a integer auto increment primary key field)
&lt;br&gt;&lt;br&gt;Any help appretiates.
&lt;br&gt;Regards,
&lt;br&gt;Sebastian</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Ibator-and-Microsoft-Access-tp26758969p26758969.html" />
</entry>

</feed>
