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: Re: struts vs ibatis - Integer type
Date Fri, 06 May 2005 16:06:36 GMT
Your problem is not ibatis. Your problem is how BeanUtils within
Struts translates an empty request parameter into an Integer property
on your bean. I would handle this issue on the Struts layer. You can
handle it either in your action form with a setter that receives a
string and sets the value into your bean or you can write a custom
Converter for BeanUtils. I recommend that you post this question to
the Struts list.

Brandon



On 5/6/05, Lieven De Keyzer <lieven_dekeyzer@hotmail.com> wrote:
> >The only way to make that "clean" is to push the translation effort
> >into your ActionForm and nest your real beans in the ActionForm. you
> >would then have a String value that you convert and set into your
> >nested bean. The other option is to write a different BeanUtils
> >Converter implementation for numerics and register it
> >(http://jakarta.apache.org/commons/beanutils/api/org/apache/commons/beanutils/ConvertUtils.html#register(org.apache.commons.beanutils.Converter,%20java.lang.Class).
> 
> I like this second approach because I presume that in this case, all INTEGER
> columns will be set to NULL if no value is provided. I just don't see why an
> empty INTEGER column should be 0.
> But how would I approach this problem? First rewrite the Jakarata commons
> converter, and then recompile the iBatis classes with these commons classes?
> 
> >
> >I would personally avoid cluttering up your domain bean with faux
> >setters and getters.
> >
> >Brandon
> >
> >On 5/2/05, Darek Dober <[EMAIL PROTECTED]> wrote:
> >>  Hi,   I hava a table  'users' with column dept_id (id of department in
> >>departments
> >>table)   This column is optional. That means the operator doesn't have to
> >>assign
> >>inserted user to any department.   If I have bean:   public class UserBean
> >>{     Integer departmentId;       .... }   struts will make automatic
> >>conversion of type. So departmentId will be set
> >>to 0, if I don't set any of department. That's a cheat, because,  I don't
> >>want to to have a department with id equals to 0, it should be NULL.   On
> >>the other hand, when I implement departmentId as String, struts act
> >>correctly. But while inserting record to the database, I get an error sth
> >>like this: database column dept_id is type of bigint, inserted value is
> >>type of
> >varchar.
> >>   I have the solution: departmentId is type of String, but for ibatis I
> >>have
> >>the other metod getDepartmentIdAsInteger which return Integer or null if
> >>value is empty. It works, but i don't like this.   Is there any cleaner
> >>solution for this. I looked into jpetstore, but there
> >>were columns of type varchar. Rest of them was mendatory. I cannot use
> >>columns of type varchar as foreign keys.   Usage: .... VALUES(
> >>      #departmentId:INTEGER#,
> >>....   doesn't help if departmentId is String   Any ideas?   Darek
> 
>

Mime
View raw message