我想用scala-activerecord创建表:
Tables.initialize(ConfigFactory.load(env))
这不起作用,因为initialize
仅接受Map[String, Any]
。
我的第二次尝试是:
Tables.initialize(ConfigFactory.load(env).root())
其中root()
返回ConfigObject
:
public interface ConfigObject extends ConfigValue, Map<String, ConfigValue>
我仍然得到:
Error:(15, 49) type mismatch;
found : com.typesafe.config.ConfigObject
required: Map[String,Any]
Tables.initialize(ConfigFactory.load(env).root())
^
我没有得到它,Any
应该接受任何价值,为什么它不接受ConfigValue
?
如何将配置传递给Tables.initialize
方法?
答案 0 :(得分:1)
如何将配置传递给Tables.initialize方法?
这可能是一个解决方案:
import scala.collection.JavaConversions._
Tables.initialize(ConfigFactory.load(env).root.unwrapped.toMap)
对于ActiveRecordTables#initialize
方法,假设您按以下方式提供覆盖设置和值:
Tables.initialize(Map(
"driver" -> "org.postgresql.Driver",
"jdbcurl" -> "jdbc:postgresql://hostname:5432/dbname"
))
此功能应该用于临时覆盖值集等应用程序(例如编码测试)。
有关数据库设置,请参阅以下内容:
https://github.com/aselab/scala-activerecord/wiki/Database-Settings