【发布时间】:2021-04-11 06:54:24
【问题描述】:
我已经用两个 MySQL 数据库配置了一个 Micronaut 应用程序,但它总是使用默认数据源执行操作。
如何使用多个数据库?
这是我的 application.yml 配置:
datasources:
default:
url: jdbc:mysql://localhost:3306/micronaut_demo
username: root
password: goti@181994
dialect: MYSQL
target:
url: jdbc:mysql://localhost:3306/micronaut_demo_target
username: root
password: goti@181994
dialect: MYSQL
jpa:
default:
packages-to-scan:
- 'com.example'
properties:
hibernate:
hbm2ddl:
auto: create-drop
show_sql: true
target:
properties:
hibernate:
hbm2ddl:
auto: create-drop
show_sql: true
这是我的Repository 声明:
@Singleton
@Repository("target")
public class DepartmentRepositoryImpl implements DepartmentRepository {
private EntityManager entityManager;
public DepartmentRepositoryImpl(EntityManager entityManager) {
this.entityManager = entityManager;
}
@Override
@ReadOnly
public Optional<Department> findById(Long id) {
return Optional.ofNullable(entityManager.find(Department.class, id));
}
@Override
@Transactional
public Department save(String name) {
//save logic
}
}
如您所见,我指定了要使用的数据源:
@Repository("target")
【问题讨论】:
-
能否添加
DepartmentRepository声明?你怎么称呼DepartmentRepositoryImpl存储库bean?可以添加调用者 sn-p 吗? -
感谢您的回复,DepartmentRepository 只是接口,只有声明的方法。我通过注入 DepartmentRepository 来像往常一样调用这些方法。
标签: java hibernate jpa micronaut micronaut-data