Java 如何向Micronaut项目添加第二个数据源?
我有一个java Micronaut项目,希望添加第二个数据源。只要添加第二个数据源,我的代码就可以正常工作。刚才提到,我必须在配置中的新名称下添加一个新源。我做错了什么?如何使用第二个DB 我的申请书Java 如何向Micronaut项目添加第二个数据源?,java,hibernate,jpa,jdbc,micronaut,Java,Hibernate,Jpa,Jdbc,Micronaut,我有一个java Micronaut项目,希望添加第二个数据源。只要添加第二个数据源,我的代码就可以正常工作。刚才提到,我必须在配置中的新名称下添加一个新源。我做错了什么?如何使用第二个DB 我的申请书 --- micronaut: application: name: transfer-service --- datasources: default: url: jdbc:postgresql://XXX.XXX.XXX.XXX:XXXX/t4dserver
---
micronaut:
application:
name: transfer-service
---
datasources:
default:
url: jdbc:postgresql://XXX.XXX.XXX.XXX:XXXX/t4dserver
driverClassName: org.postgresql.Driver
username: postgres
password: password
germany:
url: jdbc:postgresql://YYY.YYY.YYY.YYY:YYYY/t4dserver
driverClassName: org.postgresql.Driver
username: postgres
password: password
jpa:
default:
properties:
hibernate:
hbm2ddl:
auto: none
添加“germany”数据源时出现的错误:
ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [org.hibernate.SessionFactory] could not be loaded: Error instantiating bean of type [org.hibernate.boot.MetadataSources]
Message: Missing bean argument value: jpaConfiguration
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory) --> MetadataSources.hibernateMetadataSources([JpaConfiguration jpaConfiguration],StandardServiceRegistry standardServiceRegistry)
io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [org.hibernate.SessionFactory] could not be loaded: Error instantiating bean of type [org.hibernate.boot.MetadataSources]
Message: Missing bean argument value: jpaConfiguration
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory) --> MetadataSources.hibernateMetadataSources([JpaConfiguration jpaConfiguration],StandardServiceRegistry standardServiceRegistry)
at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1174)
at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:236)
at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2313)
at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:199)
at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:187)
at io.micronaut.runtime.Micronaut.start(Micronaut.java:69)
at io.micronaut.runtime.Micronaut.run(Micronaut.java:288)
at io.micronaut.runtime.Micronaut.run(Micronaut.java:274)
at transfer.service.Application.main(Application.java:8)
Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [org.hibernate.boot.MetadataSources]
Message: Missing bean argument value: jpaConfiguration
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory) --> MetadataSources.hibernateMetadataSources([JpaConfiguration jpaConfiguration],StandardServiceRegistry standardServiceRegistry)
at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:99)
at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateSessionFactoryBuilderDefinition.build(Unknown Source)
at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateSessionFactoryDefinition.build(Unknown Source)
at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
at io.micronaut.context.DefaultBeanContext.loadContextScopeBean(DefaultBeanContext.java:1761)
at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1172)
... 8 common frames omitted
为了清晰起见,写下我的评论作为回答 我认为您需要将第二个数据源添加到jpa部分,因此:
jpa:
default:
properties:
hibernate:
hbm2ddl:
auto: none
germany:
properties:
hibernate:
hbm2ddl:
auto: none
您是否按照doc的建议注入了“德国”数据源@注入@Named(“germany”)数据源数据源您是否需要为“germany”数据源提供jpg定义?谢谢您为我工作,但当我知道使用
@PersistenceContext(name=“germany”)private final EntityManager EntityManager;public GerService(@CurrentSession EntityManager EntityManager){this.EntityManager=EntityManager;}
我的应用程序仍然使用默认的EntityManager??我想我会补充一个不同的问题,这可能与JPA有关,我从未尝试过使用多个实体管理器。