Je suis en train de mettre à niveau à partir d'Hibernate 3.6.5 4.0 (et à partir du Printemps 3.0.5 à 3,1 qui est nécessaire pour Hibernate 4).
Maintenant, à la fois MySQL et HSQL, je suis en cours d'exécution dans ce problème, avec la persistance des champs booléens:
Caused by: org.hibernate.HibernateException:
Wrong column type in PUBLIC.PUBLIC.EVENT for column Checked. Found: bit, expected: boolean
at org.hibernate.mapping.Table.validateColumns(Table.java:282)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1268)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:453)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1775)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:184)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:314)
JPA @Entity
et @Column
les annotations sont utilisées dans le domaine des objets, et la problématique des champs ressembler à ceci:
@Column(name = "Checked")
private boolean checked;
HSQL schéma:
Checked bit default 0 not null,
MySQL schéma:
`Checked` tinyint(1) NOT NULL default '0',
Quelle est la façon la plus simple de résoudre ce tout en restant avec Hibernate 4? Devrais-je changer le schéma de base de données, Hibernate configs, ou le domaine de la classe des annotations?
Je n'ai aucune idée si le code et la configuration a été entièrement "correct", mais au moins il a bien fonctionné avec Hibernate 3.