2

我有一个 Scala 类,用户:

class User {
   @OId var id: String = _

   var email: String = _

   var password_hash: String = _
   var password_salt: String = _

   var admin : Boolean = _

   @OVersion var version: String = _
}

我可以成功地在数据库中创建和存储用户对象,但是当我查询用户时,例如 db.queryBySql[User]("select * from User where email = ?", username)

我得到了一个用户对象,但所有字段都是空的。

单步执行代码时,我可以从数据库中看到正确的结果,POJO 转换是失败的。

我正在使用 scala 2.9.2 和 Orient DB 1.1.0。

我究竟做错了什么?

4

1 回答 1

0

我做了例子解释:http ://code.google.com/p/orient/wiki/ScalaLanguage 这个例子使用本地连接

var db: ODatabaseObjectTx = new ODatabaseObjectTx("local:/tmp/dbtmp")

我改变了一点主应用程序。我更改导入以匹配 OrientDb 包的组织。

import com.orientechnologies.orient.core.id.ORecordId
import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery
import scala.collection.JavaConverters._
import scala.collection.JavaConversions._
import com.orientechnologies.orient.core.db.`object`.ODatabaseObject
import com.orientechnologies.orient.`object`.db.ODatabaseObjectTx

而且,我改变了打开连接的方式。小心 ODatabaseObjectTx 已被弃用。在这段代码之后,我使用 db2 而不是 db。

var db2:ODatabaseObject =
if (!db.exists) {
  db.create()
} else {
  db.open("admin", "admin")
}

我导入这些包:

orient-commons:1.1.0
orientdb-core:1.1.0
orientdb-object:1.1.0
hibernate-jpa-2.0-api:1.0.0.Final
scala-library:2.9.2
于 2012-10-08T19:44:21.360 回答