我正在尝试使用Circumflex ORM(在StackOverflow上建议 - 这里,这里和这里)通过JDBC从Scala项目(使用简单的构建工具构建)连接到本地(嵌入式)Apache Derby数据库.我仔细按照说明操作,但我遇到了一些有趣的问题.
这是cx.properties文件的驱动程序和URL组件:
orm.connection.driver=org.apache.derby.jdbc.EmbeddedDriver
orm.connection.url=jdbc:derby:derbyDB
Run Code Online (Sandbox Code Playgroud)
(这些映射到"反射驱动程序的实例创建和创建连接"模型与原始JDBC或persistence.xml中的等价物 - Circumflex使用一个简短而又甜蜜的属性文件,因为,你知道,它不是XML,这是一个很好的事情.)
我在sbt项目文件中添加的直接相关的依赖项是:
"ru.circumflex" % "circumflex-orm" % "1.0",
"org.apache.derby" % "derby" % "10.6.1.0"
Run Code Online (Sandbox Code Playgroud)
我创建了一个简短的示例模型,它定义了文档描述的表的简化版本:
import java.sql.DriverManager
import ru.circumflex.orm._
class Country extends Record[Country] {
val code = "code" VARCHAR(2)
val name = "name" TEXT
}
object Country extends Table[Country]
Run Code Online (Sandbox Code Playgroud)
这似乎编译好了,我可以实例化Country对象(使用sbt控制台调用的Scala 2.8.0 RC5 shell)并创建一个ActiveRecord对象样式,然后像这样保存:
val c = new Country
c.code := "US"
c.name := "United States of America"
c.save
Run Code Online (Sandbox Code Playgroud)
根据文档,这应该对对象运行验证,然后将其插入数据库.我得到以下异常:
java.sql.SQLSyntaxErrorException: Syntax error: Encountered "public" at …Run Code Online (Sandbox Code Playgroud)