Why not to introspect the classes at runtime (or to add a parameter to configure it) ?
Thank you.

Jeff Butler escribió:
iBATIS introspects classes at initialization time. You've configured iBATIS to think that the Relationship class has a comment property - which it doesn't. If you want to have iBATIS introspect with every statement, then you can use a Map instead of a JavaBean. You could also add abstract getComment, setComment methods to your Relationship class. Jeff Butler

On 10/9/06, *Guido García Bernardo* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Imagine the following abstract class:

    public abstract class Relationship {
        private String dateRelation;
        private Integer idUser;
        // getters & setters
    }

    That allows to define several kinds of relations, i.e:

    public class Friendship extends Relationship {
        private String comment;
        // getters & setters
    }

    The SQL map:

        <sqlMap>
            <typeAlias alias="relation" type="my.package.Relationship" />

            <insert id="insertFriend" parameterClass="relation">
                insert into FRIENDS ( id_user, date_relation, comment )
                values ( #idUser#, #dateRelation#, #comment# )
            </insert>
        </sqlMap>

    And my ibatis code throws a message error "There is not readable
    property 'comment' in my.package.Relationship".

        Relationship friend = new Friendship( ... );
        saveRelation( friend );
        ...

        public void saveRelation(Relationship relation) throws
    DAOException {
            try {
if (relation instanceof Friendship) { getSqlMapExecutor().insert( "insertFriend",
    relation );
                } else if ...
                ...
            } catch (SQLException e) {
                throw new DAOException( "Error saving friend", e );
            }
        }

    Why ibatis does not discover object properties at runtime? Is
    there any way to use abstract classes in my sql-map files?
    I am not sure if I have explained my problem properly...

    Thank you very much.
    Guido García Bernardo



--
Guido García Bernardo

Tfn. +34 983 54 89 08
ITDEUSTO - Valladolid

Reply via email to