Dear guys,
I'm getting mad with this problem.
I already have a table on db2 with data in it. Now I made up an hibernate mapping to manage my data on db with Hibernate.
The table is:
Code:
CREATE TABLE MESSAGES
(
MESSAGE_ID INTEGER PRIMARY KEY not null,
ASK_INFO_MAIL VARCHAR(50),
FROM_DATE DATE,
TO_DATE DATE,
UPDATE_DATE TIMESTAMP,
UPDATE_USERID VARCHAR(50) not null,
ASK_INFO CHAR(1) not null,
INDUSTRY_ID INTEGER
);
So my mapping would be
Code:
<class name="com.package.Message" table="MESSAGES">
<id name="messageId" type="int" unsaved-value="0" >
<column name="MESSAGE_ID" sql-type="int" not-null="true"/>
<generator class="sequence"><param name="sequence">MSG_ID</param></generator>
</id>
<property name="askInfoMail">
<column name="ASK_INFO_MAIL" sql-type="varchar(50)"/>
</property>
<property name="fromDate">
<column name="FROM_DATE" sql-type="date" />
</property>
<property name="toDate">
<column name="TO_DATE" sql-type="date" />
</property>
<property name="updateDate">
<column name="UPDATE_DATE" sql-type="timestamp" />
</property>
<property name="updateUser">
<column name="UPDATE_USERID" sql-type="varchar(50)" />
</property>
<property name="askInfo">
<column name="ASK_INFO" not-null="true" sql-type="char(1)"/>
</property>
....
</class>
</hibernate-mapping>
And my class would have method like ...
Code:
private char askInfo = 'N';
public char getAskInfo() {
return askInfo;
}
public boolean isAskInfo() {
return (askInfo == 'Y');
}
public void setAskInfo(char askInfo) {
this.askInfo = askInfo;
}
Ok, when I try getting data from db, everytime I get this error:
org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.package.Message.askInfo
I tried modifing the mapping file without putting the sql-type="char(1)", then using Character in class instead of char, then String.
I always get the same error message.
Do you have any idea??
How would I know what kind of object Hibernate is trying to set?
Thanks a lot in advance!!
MDC