"not found: value account" 在使用 squeryl 和 Scala 时
"not found: value account" While using squeryl and Scala
我正在努力做到这一点,这样我就可以从一个模型中获取价值,用于创建另一个模型。这非常简单,但给出了我在扩展 squeryl 模型时遇到的错误。实际上我正在做一些特定于这个模型的计算,但需要另一个模型的值。
我在执行各种版本时遇到错误:
class Bar(
val bazId: String
val someValue: String
) extends db.BaseModel {
val foo: Foo = db.MyDb.foos.lookup(bazId).head
def this(
bazId: Baz
) = {
this (
Baz.id,
foo.someValue,
)
}
错误是:
not found: value foo
[error] foo.someValue,
^
我试过在 Object/singleton 中进行某种查找,在 def this() 内部(这给出了 "Application does not take parameters" 错误),但没有任何效果。看起来很简单,但一点运气都没有。
问题是您试图在构造函数中访问 class 的成员,因为这是在构造对象之前 - 它不可访问。在同伴中这样做应该可以帮助您解决这个问题。类似于:
object Bar {
val foo(bazId:String): Foo = db.MyDb.foos.lookup(bazId).head
}
class Bar(
val bazId: String,
val someValue: String
) extends db.BaseModel {
val foo: Foo = Bar.foo(bazId)
def this(
bazId: String
) = {
this (
bazId,
Bar.foo(bazId).someValue
)
}
}
或者,如果您确实打算让构造函数接受 class Baz
,那么您也可以直接在 Baz
中添加查找方法 - 然后您可以直接调用它直接去查Foo
。
我正在努力做到这一点,这样我就可以从一个模型中获取价值,用于创建另一个模型。这非常简单,但给出了我在扩展 squeryl 模型时遇到的错误。实际上我正在做一些特定于这个模型的计算,但需要另一个模型的值。
我在执行各种版本时遇到错误:
class Bar(
val bazId: String
val someValue: String
) extends db.BaseModel {
val foo: Foo = db.MyDb.foos.lookup(bazId).head
def this(
bazId: Baz
) = {
this (
Baz.id,
foo.someValue,
)
}
错误是:
not found: value foo
[error] foo.someValue,
^
我试过在 Object/singleton 中进行某种查找,在 def this() 内部(这给出了 "Application does not take parameters" 错误),但没有任何效果。看起来很简单,但一点运气都没有。
问题是您试图在构造函数中访问 class 的成员,因为这是在构造对象之前 - 它不可访问。在同伴中这样做应该可以帮助您解决这个问题。类似于:
object Bar {
val foo(bazId:String): Foo = db.MyDb.foos.lookup(bazId).head
}
class Bar(
val bazId: String,
val someValue: String
) extends db.BaseModel {
val foo: Foo = Bar.foo(bazId)
def this(
bazId: String
) = {
this (
bazId,
Bar.foo(bazId).someValue
)
}
}
或者,如果您确实打算让构造函数接受 class Baz
,那么您也可以直接在 Baz
中添加查找方法 - 然后您可以直接调用它直接去查Foo
。