Spring + Hibernate: LocalSessionFactoryBean - NoSuchMethodError: org.hibernate.cfg.Anmerkungen.Reflexion.XMLContext
Ich versuche zu integrieren Hibernate 4.0.0.FINAL
mit Spring 3.1.0.RELEASE
mit @Configuration
.
Danach tritt dieses problem auf:
BeanCreationException: Error creating bean with name 'alertsSessionFactoryBean'
NoSuchMethodError: org.hibernate.cfg.annotations.reflection.XMLContext$Default.getDelimitedIdentifier()Ljava/lang/Boolean;
Dies ist mein PersistenceHibernateConfig
Datei
@Configuration
@EnableTransactionManagement
public class PersistenceHibernateConfig {
@Value("${jdbc.driverClassName}")
private String driverClassName;
@Value("${jdbc.url}")
private String url;
@Value("${hibernate.dialect}")
String hibernateDialect;
@Value("${hibernate.show_sql}")
boolean hibernateShowSql;
@Value("${hibernate.hbm2ddl.auto}")
String hibernateHbm2ddlAuto;
@Bean
public LocalSessionFactoryBean alertsSessionFactoryBean() {
final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(this.restDataSource());
sessionFactory.setPackagesToScan(new String[]{"com.cloudlb"});
sessionFactory.setHibernateProperties(this.hibernateProperties());
return sessionFactory;
}
@Bean
public DataSource restDataSource() {
final DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(this.driverClassName);
dataSource.setUrl(this.url);
dataSource.setUsername("test");
dataSource.setPassword("1234");
return dataSource;
}
@Bean
public HibernateTransactionManager transactionManager() {
final HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(this.alertsSessionFactoryBean().getObject());
return txManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslationPostProcessor() {
return new PersistenceExceptionTranslationPostProcessor();
}
@Bean
public PersistenceExceptionTranslator exceptionTranslator() {
return new HibernateExceptionTranslator();
}
final Properties hibernateProperties() {
return new Properties() {
{
this.put("persistence.dialect", PersistenceHibernateConfig.this.hibernateDialect);
this.put("hibernate.hbm2ddl.auto", PersistenceHibernateConfig.this.hibernateHbm2ddlAuto);
this.put("hibernate.show_sql", PersistenceHibernateConfig.this.hibernateShowSql);
}
};
}
}
Ich denke, es könnte ein problem mit LocalSessionFactoryBean aber ich kann nicht verstehen, was falsch ist. Ich kann etwas vermissen.
Fand ich heraus, dass es ist, weil der fehlt hibernate-annotation.jar wenn es 3 sind.x
Weiß nicht, warum in 4.0 die Anmerkung: org.hibernate.cfg.Anmerkungen.Reflexion.XMLContext ist in hibernate-core-jar-Datei und es immer noch Fehler.
Danke im Voraus
Haben Sie versucht, diese mit einer niedrigeren version von hibernate?
Gehen. Wenn Sie es beheben können in Hibernate 4. Es wird großartig sein.
Ändern der Hibernate 3.6.9. Habe einen anderen Fehler: IncompatibleClassChangeError: Klasse org.hibernate.cfg.ExtendedMappings hat interface org.hibernate.cfg.Zuordnungen als super-Klasse
Wie schaffst du es, Abhängigkeiten?
Gehen. Wenn Sie es beheben können in Hibernate 4. Es wird großartig sein.
Ändern der Hibernate 3.6.9. Habe einen anderen Fehler: IncompatibleClassChangeError: Klasse org.hibernate.cfg.ExtendedMappings hat interface org.hibernate.cfg.Zuordnungen als super-Klasse
Wie schaffst du es, Abhängigkeiten?
InformationsquelleAutor xyzxyz442 | 2011-12-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
OK Das klingt wie eine Menge, Sie ' re haben Sie Probleme mit der Bereitstellung der passenden Versionen aller benötigten Abhängigkeiten. Hier sind ein paar Gedanken auf, was falsch sein könnte:
Klingt es nicht wie man mit Maven oder ähnlich verwalten wie Sie Ihre Abhängigkeiten. Mit einem automatischen tool zur Verwaltung Ihrer Abhängigkeiten ist dringend zu empfehlen, da es sehr schwer/fehleranfällig, alle benötigten Abhängigkeiten manuell. Das sagte, Sie sollten in der Lage sein, zum download die Version in einer zip-Datei mit allen benötigten jars aus hier. Ist es das, was du getan hast?
Hibernate core hängt sich auf hibernate-commons-annotations.jar. Die Anmerkungen wurden in hibernate-Annotationen wurden in der core-jar für eine Weile jetzt. So müssen Sie hibernate-commons-annotations.jar nicht hibernate-annotations.jar
Großer froh, dass Sie sortiert.
InformationsquelleAutor Alex Barnes