ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brandon Goodin <brandon.goo...@gmail.com>
Subject Re: [ResultMap] Can't get primitive types to work
Date Fri, 18 Feb 2005 16:50:46 GMT
No problem Mike. These things are good to know. However, I'm still
curious as to why it failed. If you ever figure it out. Please post it
here and we could possibly add it to the wiki for future reference.

Branon


On Fri, 18 Feb 2005 11:48:09 -0500, Mike Zatko <mzatko@boscovs.com> wrote:
> 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