gpt4 book ai didi

Squeryl 部分更新无法编译

转载 作者:行者123 更新时间:2023-12-02 13:47:37 26 4
gpt4 key购买 nike

我不确定 squeryl 在这里想告诉我什么:

错误:无法证明 org.squeryl.dsl.fsm.Unconditioned =:= org.squeryl.dsl.fsm.Conditioned。

开启:

inTransaction {
update(AppDB.postTable) { p =>
where(p.id === postId)
set(p.upVotes := p.upVotes.~ + 1)
}

错误出在 set 子句上

架构:

object AppDB extends Schema {
val postTable = table[Post]("post")
val replyTable = table[Reply]("reply")

val postToReplies = oneToManyRelation(postTable, replyTable)
.via((p,r) => p.id === r.postId)
}

case class Post(body: String, image:Option[String]) extends KeyedEntity[Long] {
val id: Long = 0
val posted: Date = new Date()
var upVotes: Long = 0
var downVotes: Long = 0
}

case class Reply(postId: Long, body: String, image:Option[String]) extends KeyedEntity[Long] {
val id: Long = 0
val posted: Date = new Date()
}

感谢您的帮助。

最佳答案

尝试在 whereset 子句周围使用 () 而不是 {},例如:

inTransaction {
update(AppDB.postTable) ( p =>
where(p.id === postId)
set(p.upVotes := p.upVotes.~ + 1)
)
}

我不知道为什么,但我过去曾遇到过 {} 问题。当我针对您的代码测试更改时,问题似乎得到了解决。

关于Squeryl 部分更新无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633604/

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