Hi Vikram,
I don't use the UUID myself and can't answer your question from experience, but I think the real question would be how the ID is stored in the DB. IBATIS error message is is correct to say that the UUID object does not have a value (like a string or int object) and there is no UUID.getId() Assuming you use a 'uniqueidentifier' type on the (sql server) db side, I would think you need to query the ID as a string; <select id="findById" parameterClass="string" resultMap="fullResult" cacheModel="cache"> SELECT users.* FROM users WHERE id = #value# </select> sqlMapClientTemplate.queryForObject("User.findById", id.toString()); >From sql books online: A column or local variable of uniqueidentifier data type can be initialized to a value in the following ways: * By using the NEWID function. * By converting from a string constant in the formxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, in which each x is a hexadecimal digit in the range 0-9 or a-f. For example, 6F9619FF-8B86-D011-B42D-00C04FC964FF is a valid uniqueidentifier value. Comparison operators can be used with uniqueidentifier values. However, ordering is not implemented by comparing the bit patterns of the two values. The only operations that can be performed against a uniqueidentifier value are comparisons (=, <>, <, >, <=, >=) and checking for NULL (IS NULL and IS NOT NULL). No other arithmetic operators can be used. All column constraints and properties, except IDENTITY, can be used on the uniqueidentifier data type. Merge replication and transactional replication with updating subscriptions useuniqueidentifier columns to guarantee that rows are uniquely identified across multiple copies of the table. Regards Meindert Hoving From: Vikram Subbarao [mailto:vikra...@directi.com] Sent: 11 February 2010 10:13 AM To: user-java@ibatis.apache.org Subject: Re: java.util.UUID to postgres uuid column Does not work - com.ibatis.common.beans.ProbeException: There is no READABLE property named 'value' in class 'java.util.UUID' Niels Beekman wrote: Try #value#, this will use your parameter object directly. Using #id# tries to obtain the id property from it. _____ From: Vikram Subbarao [mailto:vikra...@directi.com] Sent: Thursday, February 11, 2010 7:50 AM To: user-java@ibatis.apache.org Subject: Re: java.util.UUID to postgres uuid column With this approach i tried this in a query - <select id="findById" parameterClass="java.util.UUID" resultMap="fullResult" cacheModel="cache"> SELECT users.* FROM users WHERE id = #id# </select> When i call this query as - sqlMapClientTemplate.queryForObject("User.findById", id); Note: id is an java.util.UUID object. I get an error - com.ibatis.common.beans.ProbeException: There is no READABLE property named 'id' in class 'java.util.UUID' Regards Vikram Larry Meadors wrote: This might work: public class UUIDTypeHandler implements TypeHandlerCallback { @Override public void setParameter(ParameterSetter setter, Object parameter) throws SQLException { setter.setObject(parameter); } @Override public Object getResult(ResultGetter getter) throws SQLException { return getter.getObject(); } @Override public Object valueOf(String s) { return UUID.fromString(s); } } Add this in your sqlmapconfig.xml: <typeAlias alias="UUID" type="java.util.UUID" /> <typeHandler javaType="UUID" callback="UUIDTypeHandler"/> Larry On Tue, Feb 9, 2010 at 3:35 AM, Vikram Subbarao <mailto:vikra...@directi.com> <vikra...@directi.com> wrote: I am using postgres db and would like to map a java.util.UUID to a postgres uuid column. Latest postgres driver supports mapping of this if i was directly creating my prepared statements but since i use ibatis inbetween, i am unable to achive this as ibatis does not seem to understand that java.util.UUID can be based down to jdbc. I could use typehandler if the db column was a VARCHAR, but since the postgres db is a 'uuid' type, i have no option but to use the driver supported option of using java.util.UUID, but it does not work with ibatis for me. Please help me if some one has a solution to this. Regards Vikram --------------------------------------------------------------------- To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org For additional commands, e-mail: user-java-h...@ibatis.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org For additional commands, e-mail: user-java-h...@ibatis.apache.org No virus found in this incoming message. Checked by AVG - www.avg.com Version: 9.0.733 / Virus Database: 271.1.1/2676 - Release Date: 02/10/10 21:38:00