tôi đang cố gắng tích hợp Hibernate 4.0.0.FINAL
với Spring 3.1.0.RELEASE
sử dụng @Configuration
.Spring + Hibernate: LocalSessionFactoryBean - NoSuchMethodError: org.hibernate.cfg.annotations.reflection.XMLContext
Sau đó, vấn đề này xảy ra:
BeanCreationException: Error creating bean with name 'alertsSessionFactoryBean'
NoSuchMethodError: org.hibernate.cfg.annotations.reflection.XMLContext$Default.getDelimitedIdentifier()Ljava/lang/Boolean;
Đây là PersistenceHibernateConfig
tập tin của tôi
@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);
}
};
}
}
Tôi nghĩ rằng nó có thể là một vấn đề với LocalSessionFactoryBean nhưng tôi không thể hiểu được những gì là sai. Tôi có thể thiếu một cái gì đó.
Tôi phát hiện ra rằng đó là do thiếu hibernate-annotation.jar nếu nó là 3.x Không biết tại sao trong 4.0 chú thích: org.hibernate.cfg.annotations.reflection.XMLContext ở chế độ ngủ đông- tập tin jar cốt lõi và nó vẫn còn lỗi.
Cảm ơn bạn trước
Bạn đã thử điều này với phiên bản thấp hơn của ngủ đông? –
. Nếu nó có thể sửa chữa trong Hibernate 4. Nó sẽ là tuyệt vời. – xyzxyz442
Thay đổi thành Hibernate 3.6.9. Có lỗi khác: Không tương thíchClassChangeError: class org.hibernate.cfg.ExtendedMappings có giao diện org.hibernate.cfg.Mappings làm siêu lớp – xyzxyz442