> at this point changing the db schema is not an option
The idea is to mimick splitting users table
Make a view like this
select userID, customproperty1 from usersTable where customproperty1 is not null
UNION ALL
select userID, customproperty2 from usersTable where customproperty1 is not null
... and so on for each customproperty
Now left join your usersTable (selecting all columns except customproperties) with this union view over userID and you can use standard iBatis solution as described in
1:N
& M:N Solution chapter of dev guide. Of course creation of view is not obligatory, you could just use resulting (huge) SQL...