문서 번호 here과 같이 PlaySlick을 사용하여 두 개의 데이터베이스를 구성하려고합니다. 아래의 코드에서 문제는 두 번째 데이터베이스를 구성 했는데도 db2
시도를 사용하려고 시도하면 db1
(db1의 테이블을 찾으려고 시도하고 테이블을 찾을 수 없다는 SQL 예외를 throw 함)로 리디렉션됩니다.주사를 사용하여 PlaySlick에서 두 개의 데이터베이스 구성
주사를 사용하여 PlaySlick에서 두 개의 데이터베이스를 구성하는 방법은 무엇입니까?
class ManageUsersDAO @Inject()(
@NamedDatabase("db1") protected val dbConfigProvider: DatabaseConfigProvider,
@NamedDatabase("db2") protected val dbConfigProvider2: DatabaseConfigProvider)
extends HasDatabaseConfigProvider[JdbcProfile] {
import driver.api._
val db1 = dbConfigProvider.get[JdbcProfile].db
val db2 = dbConfigProvider2.get[JdbcProfile].db
그리고 application.conf 항목 : 모든
slick.dbs.db1.driver = "slick.driver.MySQLDriver$"
slick.dbs.db1.db.driver = "com.mysql.jdbc.Driver"
slick.dbs.db1.db.url = "jdbc:mysql://localhost:3306/db1"
slick.dbs.db1.db.user = "root"
slick.dbs.db1.db.password = "db1"
slick.dbs.db2.driver = "slick.driver.MySQLDriver$"
slick.dbs.db2.db.driver = "com.mysql.jdbc.Driver"
slick.dbs.db2.db.url = "jdbc:mysql://localhost:3306/db2"
slick.dbs.db2.db.user = "root"
slick.dbs.db2.db.password = "db2"
PlaySlick 샘플 응용 프로그램은'HasDatabaseConfigProvider'를 확장합니다, 대안은 무엇입니까? – ps0604
그러나이 특성은 기본적으로 아무것도주지 않습니다. 소스 코드를 살펴보십시오. 최종 보호 된 값을 덮어 씁니다. dbConfig : DatabaseConfig [P] = dbConfigProvider.get [P]'(이 줄에서 이미 수행 한 것 :'val db1 = dbConfigProvider.get [JdbcProfile] .db'). 대답은 - 하나의 db를 사용하면 1 줄 또는 2 줄을 절약 할 수 있습니다. 귀하의 경우 이미이 선을 작성 했으므로 대체 선이 필요하지 않습니다 (어떤 것도 연장 할 필요가 없음). 하지만 문제와 관련이 있습니다 (관련성이 의심 스럽습니다). 데이터베이스에 테이블이 필요합니까? –
난 그냥 다시이 테스트하고, 잘 작동, 당신 말이 맞아요. – ps0604