ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Zatko <mza...@boscovs.com>
Subject Re: [ResultMap] Can't get primitive types to work
Date Fri, 18 Feb 2005 16:48:09 GMT
DB2 7 blows. I went and tried the same code on a workstation with a DB2 
8 client and it worked. Sorry for wasting your time.

Brandon Goodin wrote:

>what is the driver and database that you are using?
>
>
>On Fri, 18 Feb 2005 11:26:35 -0500, Mike Zatko <mzatko@boscovs.com> wrote:
>  
>
>>2.0.9
>>
>>Brandon Goodin wrote:
>>
>>    
>>
>>>what version of ibatis are you using?
>>>
>>>
>>>On Fri, 18 Feb 2005 11:16:23 -0500, Mike Zatko <mzatko@boscovs.com> wrote:
>>>
>>>
>>>      
>>>
>>>>*I tried it and it does not work. My error is as follows:*
>>>>
>>>>ResultSetLogProxy.java|41|DEBUG|2005-02-18
>>>>11:13:16,756|3766|{rset-100020} ResultSet
>>>>PromotionFacadeSqlMapsImpl.java|71|ERROR|2005-02-18 11:13:16,772|3782|
>>>>--- The error occurred in configs/sqlmaps/promotions-sql.xml.
>>>>--- The error occurred while applying a result map.
>>>>--- Check the adjustment.getPromotionActionMap.
>>>>--- The error happened while setting a property on the result object.
>>>>--- Cause: com.ibatis.common.beans.ProbeException: Could not set
>>>>property 'numberOfItems' for
>>>>com.boscovs.commerce.promotion.dao.ActionDAO.  Cause:
>>>>java.lang.IllegalArgumentException
>>>>Caused by: java.lang.IllegalArgumentException
>>>>com.ibatis.common.jdbc.exception.NestedSQLException:
>>>>--- The error occurred in configs/sqlmaps/promotions-sql.xml.
>>>>--- The error occurred while applying a result map.
>>>>--- Check the adjustment.getPromotionActionMap.
>>>>--- The error happened while setting a property on the result object.
>>>>--- Cause: com.ibatis.common.beans.ProbeException: Could not set
>>>>property 'numberOfItems' for
>>>>com.boscovs.commerce.promotion.dao.ActionDAO.  Cause:
>>>>java.lang.IllegalArgumentException
>>>>Caused by: java.lang.IllegalArgumentException
>>>>Caused by: com.ibatis.common.beans.ProbeException: Could not set
>>>>property 'numberOfItems' for
>>>>com.boscovs.commerce.promotion.dao.ActionDAO.  Cause:
>>>>java.lang.IllegalArgumentException
>>>>Caused by: java.lang.IllegalArgumentException
>>>>   at
>>>>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:183)
>>>>   at
>>>>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:99)
>>>>   at
>>>>com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561)
>>>>   at
>>>>com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)
>>>>   at
>>>>com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:97)
>>>>   at
>>>>com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:69)
>>>>   at
>>>>com.boscovs.commerce.promotion.PromotionFacadeSqlMapsImpl.applyPromotions(PromotionFacadeSqlMapsImpl.java:61)
>>>>   at test.PromotionTest.execute(PromotionTest.java:106)
>>>>   at test.PromotionTest.main(PromotionTest.java:171)
>>>>Caused by: com.ibatis.common.beans.ProbeException: Could not set
>>>>property 'numberOfItems' for
>>>>com.boscovs.commerce.promotion.dao.ActionDAO.  Cause:
>>>>java.lang.IllegalArgumentException
>>>>Caused by: java.lang.IllegalArgumentException
>>>>   at
>>>>com.ibatis.common.beans.JavaBeanProbe.setProperty(JavaBeanProbe.java:309)
>>>>   at
>>>>com.ibatis.common.beans.JavaBeanProbe.setObject(JavaBeanProbe.java:229)
>>>>   at com.ibatis.common.beans.GenericProbe.setObject(GenericProbe.java:73)
>>>>   at
>>>>com.ibatis.sqlmap.engine.accessplan.ComplexAccessPlan.setProperties(ComplexAccessPlan.java:34)
>>>>   at
>>>>com.ibatis.sqlmap.engine.exchange.JavaBeanDataExchange.setData(JavaBeanDataExchange.java:112)
>>>>   at
>>>>com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.setResultObjectValues(BasicResultMap.java:296)
>>>>   at
>>>>com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:60)
>>>>   at
>>>>com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:355)
>>>>   at
>>>>com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:179)
>>>>   at
>>>>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:200)
>>>>   at
>>>>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:168)
>>>>   ... 8 more
>>>>Caused by: java.lang.IllegalArgumentException
>>>>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>   at
>>>>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>   at
>>>>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>   at java.lang.reflect.Method.invoke(Method.java:585)
>>>>   at
>>>>com.ibatis.common.beans.JavaBeanProbe.setProperty(JavaBeanProbe.java:298)
>>>>   ... 18 more
>>>>
>>>>*Is it possible that its my database that is the problem? I am using DB2
>>>>V7.2.*
>>>>
>>>>
>>>>Brandon Goodin wrote:
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>>>I would recommend that you specify the jdbcType in your result.
>>>>>
>>>>><result property="numberOfItems" column="min_item_quantity"
>>>>>jdbcType="INTEGER" javaType="int"/>
>>>>>
>>>>>On Fri, 18 Feb 2005 06:55:01 -0800 (PST), Karen Koch
>>>>><kmkoch@sbcglobal.net> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>>>Are you perhaps missing the parameterClass arg on the statement itself?
>>>>>>
>>>>>>--- Mike Zatko <mzatko@boscovs.com> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>>>/*I have a table as follows:*/
>>>>>>>
>>>>>>>sqltype               sqllen  sqlname.data                   
sqlname.length
>>>>>>>--------------------  ------  ------------------------------
>>>>>>>--------------
>>>>>>>492   BIGINT               8
>>>>>>>PROMO_ACTION_ID                             15
>>>>>>>492   BIGINT               8
>>>>>>>PROMOTION_ID                                12
>>>>>>>452   CHARACTER            1
>>>>>>>ACTIONTYPE                                  10
>>>>>>>497   INTEGER              4
>>>>>>>MIN_ITEM_QUANTITY                           17
>>>>>>>485   DECIMAL          20, 5
>>>>>>>MIN_SINGLE_ITEM_VALUE                       21
>>>>>>>485   DECIMAL          20, 5
>>>>>>>MIN_TOTAL_ITEM_VALUE                        20
>>>>>>>485   DECIMAL          20, 5
>>>>>>>MIN_ORDER_VALUE                             15
>>>>>>>
>>>>>>>
>>>>>>>/*I have the following ResultMap*/
>>>>>>>
>>>>>>>  <resultMap id="getPromotionActionMap"
>>>>>>>class="com.boscovs.commerce.promotion.dao.ActionDAO">
>>>>>>>      <result property="type" column="actiontype" />
>>>>>>>      <result property="numberOfItems" column="min_item_quantity"
>>>>>>>javaType="int"/>
>>>>>>>      <result property="individualItemValue"
>>>>>>>column="min_single_item_value" javaType="double"/>
>>>>>>>      <result property="totalItemValue" column="min_total_item_value"
>>>>>>>javaType="double"/>
>>>>>>>      <result property="totalValue" column="min_order_value"
>>>>>>>javaType="double"/>
>>>>>>>  </resultMap>
>>>>>>>
>>>>>>>
>>>>>>>  <select id="getPromotionAction" resultMap="getPromotionActionMap">
>>>>>>>      <![CDATA[Select a.actiontype, a.min_item_quantity,
>>>>>>>          a.min_single_item_value,
>>>>>>>          a.min_total_item_value,
>>>>>>>          a.min_order_value
>>>>>>>          from DB2USR.PROMOTION as p, DB2USR.PROMO_ACTION a
>>>>>>>          where p.promotion_id = a.promotion_id
>>>>>>>          and p.promotion_id = #value#
>>>>>>>          and p.status='A']]>
>>>>>>>  </select>
>>>>>>>
>>>>>>>
>>>>>>>/*My bean is as follows*/
>>>>>>>
>>>>>>>public class ActionDAO {
>>>>>>>
>>>>>>>  public static enum Selected {
>>>>>>>      UNSELECTED, NO_ACTION, ADDS_X_ITEMS, TOTAL_ORDER_VALUE_AT_LEAST_X
>>>>>>>  }
>>>>>>>
>>>>>>>  private Selected selected = Selected.UNSELECTED;
>>>>>>>  private XItems xItems;
>>>>>>>  private double totalValue;
>>>>>>>  private int numberOfItems;
>>>>>>>  private double individualItemValue;
>>>>>>>  private double totalItemValue;
>>>>>>>  private String type;
>>>>>>>
>>>>>>>
>>>>>>>  /**
>>>>>>>   * @return
>>>>>>>   */
>>>>>>>  public Selected getSelected() {
>>>>>>>      return selected;
>>>>>>>  }
>>>>>>>
>>>>>>>  /**
>>>>>>>   * @return
>>>>>>>   */
>>>>>>>  public double getTotalValue() {
>>>>>>>      return totalValue;
>>>>>>>  }
>>>>>>>
>>>>>>>  /**
>>>>>>>   * @return
>>>>>>>   */
>>>>>>>  public XItems getXItems() {
>>>>>>>      return xItems;
>>>>>>>  }
>>>>>>>
>>>>>>>  /**
>>>>>>>   * @param i
>>>>>>>   */
>>>>>>>  public void setSelected(Selected i) {
>>>>>>>      selected = i;
>>>>>>>  }
>>>>>>>
>>>>>>>  /**
>>>>>>>   * @param d
>>>>>>>   */
>>>>>>>  public void setTotalValue(double d) {
>>>>>>>      totalValue = d;
>>>>>>>  }
>>>>>>>
>>>>>>>  /**
>>>>>>>   * @param items
>>>>>>>   */
>>>>>>>  public void setXItems(XItems items) {
>>>>>>>      xItems = items;
>>>>>>>  }
>>>>>>>
>>>>>>>  public void setType(String type) {
>>>>>>>      this.type = type;
>>>>>>>  }
>>>>>>>
>>>>>>>  public double getIndividualItemValue() {
>>>>>>>      return individualItemValue;
>>>>>>>  }
>>>>>>>  public void setIndividualItemValue(double individualItemValue)
{
>>>>>>>      this.individualItemValue = individualItemValue;
>>>>>>>  }
>>>>>>>  public int getNumberOfItems() {
>>>>>>>      return numberOfItems;
>>>>>>>  }
>>>>>>>  public void setNumberOfItems(int numberOfItems) {
>>>>>>>      this.numberOfItems = numberOfItems;
>>>>>>>  }
>>>>>>>  public double getTotalItemValue() {
>>>>>>>      return totalItemValue;
>>>>>>>  }
>>>>>>>  public void setTotalItemValue(double totalItemValue) {
>>>>>>>      this.totalItemValue = totalItemValue;
>>>>>>>  }
>>>>>>>  /**
>>>>>>>   * toString method: creates a String representation of the object
>>>>>>>   * @return the String representation
>>>>>>>   * @author
>>>>>>>   */
>>>>>>>  public String toString() {
>>>>>>>      StringBuffer buffer = new StringBuffer();
>>>>>>>      buffer.append("ActionDAO[");
>>>>>>>      buffer.append("individualItemValue = ").append(individualItemValue);
>>>>>>>      buffer.append(", numberOfItems = ").append(numberOfItems);
>>>>>>>      buffer.append(", selected = ").append(selected);
>>>>>>>      buffer.append(", totalItemValue = ").append(totalItemValue);
>>>>>>>      buffer.append(", totalValue = ").append(totalValue);
>>>>>>>      buffer.append(", type = ").append(type);
>>>>>>>      buffer.append(", xItems = ").append(xItems);
>>>>>>>      buffer.append("]");
>>>>>>>      return buffer.toString();
>>>>>>>  }}
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>/*I get an IllegalArgumentException from all this query. The developers
>>>>>>>guide infers that you can use primitives in your definitions.
Does it?
>>>>>>>Or am I doing something stupid and not realizing it? BTW, it works
if I
>>>>>>>use Wrapper classes, but I don't want to have to go through all
of my
>>>>>>>beans and covert them. Thanks for any help.*/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>            
>>>>>>
>>>>>
>>>>>          
>>>>>
>>>>--
>>>>Michael H. Zatko
>>>>Java Enterprise Developer
>>>>Boscov's Information Services
>>>>Work: 610-929-7317
>>>>Home: 610-376-1624
>>>>Page: 610-736-4460
>>>>
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>
>>>      
>>>
>>--
>>Michael H. Zatko
>>Java Enterprise Developer
>>Boscov's Information Services
>>Work: 610-929-7317
>>Home: 610-376-1624
>>Page: 610-736-4460
>>
>>
>>    
>>
>
>  
>


-- 
Michael H. Zatko
Java Enterprise Developer
Boscov's Information Services
Work: 610-929-7317
Home: 610-376-1624
Page: 610-736-4460


Mime
View raw message