我使用Spring boot版本1.3.5.RELEASE为我的应用程序。当我配置数据源时,它会抛出一些例外。它显示library.datasource.driver-class-name = com.mysql.jdbc.Driver
library.datasource.url = jdbc:mysql://192.168.0.188:3306/library_keycloak?autoReconnect=true
library.datasource.username = jijesh
library.datasource.password = jijesh
# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.timeBetweenEvictionRunsMillis = 60000
spring.datasource.validationQuery = SELECT 1
# Number of ms to wait before throwing an exception if no connection is available.
spring.datasource.max-wait=10000
# Maximum number of active connections that can be allocated from this pool at the same time.
spring.datasource.max-active=50
# Validate the connection before borrowing it from the pool.
spring.datasource.test-on-borrow=true
# Show or not log for each sql query
spring.jpa.hibernate.connection.provider_class=org.hibernate.hikaricp.internal.HikariCPConnectionProvider
spring.jpa.hibernate.hikari.minimumIdle=5
spring.jpa.hibernate.hikari.maximumPoolSize=10
# Show or not log for each sql query
spring.jpa.show-sql = true
spring.jpa.generate-ddl=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
hibernate.temp.use_jdbc_metadata_defaults = false
#Hibernate ddl auto (create, create-drop, update)
#spring.jpa.hibernate.ddl-auto = update
#spring.jpa.hibernate.ddl-auto = create-drop
# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# Use spring.jpa.properties.* for Hibernate native properties (the prefix is
# stripped before adding them to the entity manager)
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
。
application.properties
@Configuration
@ComponentScan("com.appscook.library.service")
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "libraryEntityManagerFactory",
transactionManagerRef = "libraryTransactionManager",
basePackages = "com.appscook.library.*")
public class LibraryDBConfig {
@Bean
@Primary
@ConfigurationProperties(prefix = "library.datasource")
public DataSource hrmsDataSource()
{
return DataSourceBuilder.create().build();
}
@Bean
public LocalContainerEntityManagerFactoryBean hrmsEntityManagerFactory(final EntityManagerFactoryBuilder builder)
{
return builder
.dataSource(hrmsDataSource())
.packages("com.appscook.library.domain")
.persistenceUnit("libraryPersistenceUnit")
.build();
}
@Bean
public JpaTransactionManager hrmsTransactionManager(@Qualifier("libraryEntityManagerFactory") final EntityManagerFactory factory)
{
return new JpaTransactionManager(factory);
}
}
数据库配置
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#2424cb9d': Cannot resolve reference to bean 'libraryEntityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'libraryEntityManagerFactory' is defined
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:634) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:444) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:299) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
... 45 common frames omitted
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'libraryEntityManagerFactory' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:698) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
栈跟踪
DB::table('carts')
->sum(\DB::raw('carts.price+COALESCE(carts.support,0)+COALESCE(carts.installation,0)' ))
->where('status','=',1)
->where('user_id','=',$id);
答案 0 :(得分:0)
找到答案
@Bean
public LocalContainerEntityManagerFactoryBean hrmsEntityManagerFactory(final EntityManagerFactoryBuilder builder)
{
return builder
.dataSource(hrmsDataSource())
.packages("com.appscook.library.domain")
.persistenceUnit("libraryPersistenceUnit")
.build();
}
到
@Bean
public LocalContainerEntityManagerFactoryBean libraryEntityManagerFactory(final EntityManagerFactoryBuilder builder)
{
return builder
.dataSource(hrmsDataSource())
.packages("com.appscook.library.domain")
.persistenceUnit("libraryPersistenceUnit")
.build();
}