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:33:49 GMT
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
> 
>

Mime
View raw message