【问题标题】:Could not run SORM examples无法运行 SORM 示例
【发布时间】:2014-03-21 17:09:42
【问题描述】:

我在测试不错的 SORM 库时遇到了问题。

当我尝试运行这样的代码时:

case class Coffee(name: String, supplier: Supplier, price: Double, sales: Int, total: Int)
case class Supplier(name: String, street: String, city: String, state: String, zip: String)

object Db extends Instance(
  entities = Set(Entity[Coffee](), Entity[Supplier]()),
  url = "jdbc:h2:mem:play",
  initMode = InitMode.Create
)

val supplier1 = Supplier("Acme, Inc.", "99 Market Street", "Groundsville", "CA", "95199")
Db.save(supplier1)

我得到这样的例外:

Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
    at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106) ~[mchange-commons-java-0.2.3.jar:na]
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:641) ~[c3p0-0.9.2-pre5.jar:0.9.2-pre5]

我使用 Play 2.10,我的数据库配置如下所示:

 db.default.driver=org.h2.Driver
 db.default.url="jdbc:h2:mem:play"
# db.default.user=sa
# db.default.password=""

我错过了什么吗?

提前致谢!

【问题讨论】:

  • 它和 Play 有什么关系?
  • 是的,您的评论也正确。我删除了播放标签。正如您在下面对您的回答的评论中看到的那样,我认为这与播放框架有关。

标签: sorm


【解决方案1】:

这段代码运行得非常好。问题一定出在您的设置中。例如,为了能够使用 H2 数据库,您需要将其包含在项目的依赖项中。

在我成功测试您的代码的 Maven 项目中,我有以下依赖项:

<dependency>
  <groupId>com.h2database</groupId>
  <artifactId>h2</artifactId>
  <version>1.3.168</version>
</dependency>

【讨论】:

  • 谢谢,就是这样。我认为 h2 以某种方式包含在 playframework 中,因此我不需要任何依赖项。所以,这完全是我的错,在我在 project/Build.scala 的依赖列表中添加了类似 '"com.h2database" % "h2" % "1.3.168"' 之后,它运行良好。
猜你喜欢
  • 2012-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
  • 2017-01-26
  • 2014-07-26
  • 1970-01-01
相关资源
最近更新 更多