ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From I L <iss...@hotmail.com>
Subject IBatis 3 backward compatibility
Date Sat, 22 Aug 2009 23:47:07 GMT


I found two scenario's in which used to work in ibatis 2 but no longer works in ibatis 3.

Scenario 1:

In ibatis 2, you could specify the table name and column name:
<result column="user.version" jdbcType="INTEGER" property="version" />
In this case the table is "user" and the column is "version"

With Ibatis 3, if I specify the full column name, "user.version", pojo binding doesn't occur.
I must omit the "user." part to just
<result column="version" jdbcType="INTEGER" property="version" />

The ability to have the fully qualified column name is important when you need to distinguish
them when both columns are selected from the database.

   <result column="user.version" jdbcType="INTEGER" property="version" />
   <result column="place.version" jdbcType="INTEGER" property="version" />

Of course there I could change the column names so they are unique across all tables or use
aliasing when necessary. But I thought the ibatis 2 approach was cleaner

Scenario 2:
In ibatis 2, I used to be able to access a pojo property that is complex:

<result column="password" property="password.encrypted" jdbcType="VARCHAR" />

So I had a Field of type Password which had and encrypted member. I only want to persist "encrypted"

class Pojo{
  private Password password;
class Password{
  private String encrypted; //the encrypted string

  public void getDecryptedString(){...}

Windows Live: Make it easier for your friends to see what you’re up to on Facebook.
View raw message