Registration my own implementation of converter is not a good choice, because I want to treat only particular columns in that way, and converter would treat all integer types in the same way (I could be wrong:)
Nest my real bean is the best solution to make that "clean", however I decided to solve this problem on database side. If you notice, you would have the same problem with dates. If you want to validate them, and keep invalid data to correct them, you have to keep them as String ( I also could be wrong here:) The easiest and most painless method for me, was to use database functions: For example: In postgresql you can use function TO_DATE(), or just use expression like this: #deptId:INTEGER#::integer, which shows the clue to convert type on database side: SELECT '123'::integer, convert number 123 to integer type. In Oracle there are also functions like this: TO_DATE, TO_NUMBER, and so on. That's the way I did it Darek Dober ----- Original Message ----- From: "Lieven De Keyzer" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, May 05, 2005 3:14 PM Subject: Re: re: struts vs ibatis - Integer type > Where you able to use this advice? I'm kind of in same situation and wanted > to know if you could solve it this way. > > >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/beanuti ls/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 <[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 > >