从查询返回时,未设置scala类中的任何字段

时间:2012-10-04 11:50:19

标签: scala orientdb

我有一个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)

我得到一个User对象,但所有字段都为空。

当步进代码时,我可以看到DB的正确结果,POJO转换失败了。

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

我做错了什么?

1 个答案:

答案 0 :(得分: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