我有一个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。
我做错了什么?
答案 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