Как создать источник данных для облака в MySQL при работе на Bluemix? Если есть примеры Java-конфигурации, пожалуйста, поделитесь. Как создать Hibernate для создания таблиц и почему я могу получить эту ошибку?Как настроить облачный источник данных для MySQL на Bluemix?
Ошибка при создании компонент с именем «EntityManagerFactory» определено в com.covenant.app.config.root.DatabaseConfig: Неудовлетворенный зависимость выражается через аргумент конструктора с индексом 0 типа [org.springframework.jdbc.datasource .DriverManagerDataSource]:: Нет квалификационный компонент типа [org.springframework.jdbc.datasource.DriverManagerDataSource] найден для зависимости: ожидается как минимум 1 бит, который квалифицируется как автоузел кандидат на эту зависимость. Аннотации зависимостей: {}; вложенная исключение не является org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет квалификационная рожкового типа [org.springframework.jdbc.datasource.DriverManagerDataSource] найдено для зависимости: ожидается, по крайней мере, один боб, который квалифицируется как autowire кандидата на эта зависимость. Зависимость от аннотаций: {}
Моя база данных Config класса
@Configuration
@Profile("cloud")
@EnableTransactionManagement
public class CloudDatabaseConfig extends AbstractCloudConfig {
@Bean
public DataSource inventoryDataSource() {
return connectionFactory().dataSource("mysql");
}
@Bean(name = "namingStrategy")
public ImprovedNamingStrategy getNamingStrategy(){
ImprovedNamingStrategy namingStrategy = new CDCustomNamingStrategy();
return namingStrategy;
}
@Bean(name="dataSource")
public BasicDataSource dataSource() throws PropertyVetoException {
BasicDataSource bean = new BasicDataSource();
bean.setDriverClassName("com.mysql.jdbc.Driver");
bean.setUrl("jdbc:mysql://localhost:3306/bluemix?useUnicode=true&characterEncoding=UTF-8");
bean.setUsername("root");
bean.setPassword("root");
return bean;
}
@Bean(name = "entityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, ImprovedNamingStrategy ins) {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setDataSource(dataSource);
entityManagerFactoryBean.setPackagesToScan(new String[]{"com.covenant.app.model"});
entityManagerFactoryBean.setLoadTimeWeaver(new InstrumentationLoadTimeWeaver());
entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
Map<String, Object> jpaProperties = new HashMap<String, Object>();
jpaProperties.put("database", "mysql");
jpaProperties.put("hibernate.hbm2ddl.auto", "update");
jpaProperties.put("hibernate.show_sql", "true");
jpaProperties.put("hibernate.format_sql", "true");
jpaProperties.put("hibernate.use_sql_comments", "true");
jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
jpaProperties.put("hibernate.ejb.naming_strategy", ins);
entityManagerFactoryBean.setJpaPropertyMap(jpaProperties);
return entityManagerFactoryBean;
}
}
Мой manifest.yml
файл на Bluemix:
---
applications:
- name: lordthankyou
path: target/ideals.war
services:
- mysql
env:
SPRING_PROFILES_ACTIVE: cloud
я получаю следующие ошибки:
Ошибка создания боб с именем «userService»: инъекция автоувеличиваемого зависимости не удались; вложенное исключение: org.springframework.beans.factory.BeanCreationException: не удалось поле autowire: private com.covenant.app.dao.UserRepository com.covenant.app.services.UserService.userRepository; вложенное исключение is org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'userRepository': Injection of persistence зависимостей не удалось; вложенное исключение org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет квалификационных рожкового типа [javax.persistence.EntityManagerFactory] является определено