Mapping List<CustomClass> in hibernate - ClassCastException
===

I am having difficulties mapping a list in hibernate. I would like to know what you think of my classes, mapping and database scheme. If everything is right, I would like some help on the thrown exception. Thanks in advance !

I have the following classes : 

    public class AuditEntry {
    
    	private long id;
    	private String typeLigne;
    	private String famille;
    	private String user;
    	private String libelle ;
    	private String processName;
    	private String caseId;
    	private Date dateCreation = null;
    	private List<AuditEntryStringMap> libelles;
    
        /* Getters and setters generated automatically... */
    }

    public class AuditEntryStringMap {
    
    	private long id ;
    	private String key ;
    	private String value ;
    	
    	public AuditEntryStringMap(String key, String value) {
    		this.key = key ;
    		this.value = value ;
    	}
            /* Getters and setters generated automatically... */
    }


My hbm files are the following : 

    <class name="AuditEntryStringMap" table="AUDIT_I18N">
    
    		<cache usage="read-write" include="all" />
    		<id name="id" type="long">
    			<column name="AUDIT_I18N_ID"></column>
    			<generator class="sequence" >
    			<param name="sequence">AUDIT_I18N_SEQ</param>
    			</generator>
    		</id>
    
    		<property name="key" column="KEY_" />
    		<property name="value" column="VALUE_"/>
    		
    </class>
    <class name="AuditEntry" table="AUDIT">
    
    		<cache usage="read-write" include="all" />
    		<id name="id" type="long">
    			<column name="AUDIT_ID"></column>
    			<generator class="sequence" >
    			<param name="sequence">AUDIT_SEQ</param>
    			</generator>
    		</id>
    
    		<property name="typeLigne" column="TYPELIGNE" />
    
    		<property name="libelle" column="LIBELLE" />
    
    		<property name="user" column="USERNAME" />
    
    		<property name="processName" column="PROCESSNAME" />
    
    		<property name="caseId" column="CASE_ID" />
    
    		<property name="dateCreation" insert="false" update="false">
    			<column name="DCRE" sql-type="date" default="sysdate"></column>
    		</property>
    
    		<list name="libelles" table="AUDIT_I18N"> 
    	    	<key> 
    	   			<column name="FK_AUDIT_ID" sql-type="number(19,0)" /> 
    	     	</key> 
    	    	<index type="string" column="KEY_" /> 
    	    	<element type="string" column="VALUE_" /> 
            </list>
    	</class>

Finally, my sql script is the following : 


    create sequence AUDIT_SEQ;
    create sequence AUDIT_I18N_SEQ;
    
    create table AUDIT (
        AUDIT_ID     number(19,0) not null,  
        TYPELIGNE    varchar2(255 char), 
        LIBELLE      varchar2(255 char),
        USERNAME     varchar2(255 char), 
        CASE_ID      varchar2(255 char),
        PROCESSNAME  varchar2(255 char), 
        DCRE          date default sysdate, 
        primary key (AUDIT_ID));
    
    create table AUDIT_I18N (
        AUDIT_I18N_ID     number(19,0) not null, 
        KEY_              varchar2(255 char), 
        VALUE_            varchar2(255 char), 
        FK_AUDIT_ID       number(19, 0), 
        primary key (AUDIT_I18N_ID)) 
    
    ALTER TABLE AUDIT_I18N add constraint FK_AUDIT_I18N foreign key (FK_AUDIT_ID) references AUDIT;

Hibernate generates the following queries before casting an exception on commit : 

    Hibernate: select AUDIT_SEQ.nextval from dual
    Hibernate: insert into AUDIT (TYPELIGNE, LIBELLE, USERNAME, PROCESSNAME, CASE_ID, AUDIT_ID) values (?, ?, ?, ?, ?, ?)
    Hibernate: insert into AUDIT_I18N (FK_AUDIT_ID, KEY_, VALUE_) values (?, ?, ?)

The exception : 

    com.logica.bpm.domain.AuditEntryStringMap cannot be cast to java.lang.String

Which occurs when GenericDaoHibernate.save(T entity) is called.
