gpt4 book ai didi

scala - Play2,MongoDB, Play salat : class cast exceptions

转载 作者:行者123 更新时间:2023-12-01 10:59:58 26 4
gpt4 key购买 nike

我有一个对象 Foo,它包含一个对象列表 Bar,我使用 play-salat 插件从 MongoDb 获得。模型看起来像这样。

case class Foo (
@Key("_id") id: ObjectId = new ObjectId,
bars: Option[List[Bar]] = None
)

case class Bar (
something: String
)

该 View 应显示 foo 对象的列表。我像这样传递一个迭代器

@(foos: Iterator[Foo])

显示数据的模板部分如下所示:

@foos.map { foo =>
<div class="foo">@foo.id</div>
@if(foo.bars != None) {
<ul>
@for( bar <- bars ) {
<li>@bar.something</li>
}
</ul>
}
}

这样做,我得到一个 ClassCastException:

[ClassCastException: com.mongodb.BasicDBList cannot be cast to scala.collection.immutable.List]

我尝试过类似的其他变体

@for( i <- 0 to foo.bars.size - 1 ) {
<li>@foo.bars.get(i).something</li>
}

也会导致 ClassCastException:

[ClassCastException: com.mongodb.BasicDBList cannot be cast to scala.collection.LinearSeqOptimized]

问题是,如何遍历 mongodb 对象列表?我想/希望不需要某种传输对象。

最佳答案

来自 salat wiki 的注释它不支持包含集合的选项。

改为尝试:

case class Foo (
@Key("_id") id: ObjectId = new ObjectId,
bars: List[Bar] = List()
)

关于scala - Play2,MongoDB, Play salat : class cast exceptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12017399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com