0
我试图包装一些演员接收代码在db事务来构建idempotent持久视图,通过更新数据库中的信息来处理事件。缺少参数类型扩展功能的单位斯卡拉
class TrajectoryView extends IdempotentView {
override def viewId: String = "trajectoryView"
override def persistenceId: String = "sample-id-1"
override def handleEvent(event: Event): Unit = {
case ProcessDetectedEvent(time, processData, id, activityType) =>
val coords = Db.save(processData.coordinates)
Db.save(CoordinatesWrapper(id, coords))
case ProcessUpdatedEvent(id, processData, time) =>
val coords = Db.save(processData.coordinates)
Db.save(CoordinatesWrapper(id, coords))
}
}
abstract class IdempotentView extends PersistentView {
def handleEvent(event: Event): Unit = ???
var maxSeenSeqNumber = Db.query[SeqNumberWrapper].fetchOne().getOrElse(SeqNumberWrapper(0, viewId)).seqNumber
def receive: Receive = {
case event: Event =>
if (lastSequenceNr > maxSeenSeqNumber) {
Db.transaction {
Db.save(SeqNumberWrapper(lastSequenceNr, viewId))
handleEvent(event)
}
}
case _: Unit =>
println("Unknown message")
}
}
Error:(22, 50) missing parameter type for expanded function The argument types of an anonymous function must be fully known. (SLS 8.5)
Expected type was: Unit override def handleEvent(event: Event): Unit = {
我该怎么办?我不明白这个错误究竟意味着什么。从我的观点来看,我编写了所有类型,编译器不需要推断任何内容。
它的工作原理!非常感谢!如果没有你的帮助,我会花一整天阅读scala文档来解决这个问题。 – user1685095
那么为什么这个问题没有标记为“已回答”? – jwvh