You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Brandon Goodin <br...@gmail.com> on 2005/05/02 21:28:29 UTC

Re: struts vs ibatis - Integer type

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 would personally avoid cluttering up your domain bean with faux
setters and getters.

Brandon

On 5/2/05, Darek Dober <do...@op.pl> 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