Salut !

Je dispose dans mon application d'un objet POJO avec les attributs suivants :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public class Message{
private Map metadata;
private String payload;
......
}
J'ai créé une table en base de données Postgresql contenant un champ de type bytea ( binaire ) pour le Map et un champ de type varchar pour le String .

Voici mon fichier hbm :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<hibernate-mapping>
	<class name="org.beans.Message" table="message">
		<id name="id" column="id">
			<generator class="increment" />
		</id>
		<property name="metadata" column="metadata"/>
		<property name="payload" column="payload" />
	</class>
</hibernate-mapping>
en essayant de faire un session.save() de mon objet, j'obtiens l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Map, at table: message, for columns: [org.hibernate.mapping.Column(metadata)]
	at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:290)
	at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:274)
	at org.hibernate.mapping.Property.isValid(Property.java:207)
	at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:464)
	at org.hibernate.mapping.RootClass.validate(RootClass.java:236)
	at org.hibernate.cfg.Configuration.validate(Configuration.java:1193)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1378)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:855)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:774)
	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1398)
	... 52 more
Si je supprime la ligne relative à l'attribut metadata du fichier hbm tout marche parfaitement.

Merci d'avance à tous ceux qui me fourniront un élément de réponse.