Sauvegarder Objet avec attribut HashMap
Salut !
Je dispose dans mon application d'un objet POJO avec les attributs suivants :
Code:
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:
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:
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.