Salut !
Je dispose dans mon application d'un objet POJO avec les attributs suivants :
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 .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class Message{ private Map metadata; private String payload; ...... }
Voici mon fichier hbm :
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 <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>
Si je supprime la ligne relative à l'attribut metadata du fichier hbm tout marche parfaitement.
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
Merci d'avance à tous ceux qui me fourniront un élément de réponse.
Partager