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