有人告诉我 SORM 的目标是不可变数据。它没有写在网站上 - 至少不是我正在查看的主要部分,所以我对索赔的僵化感到有点惊讶。我只是知道它会建议这样做。但也许我只是错过了一些东西。
这些示例告诉您在对对象调用 Db.save() 之前使用“.copy(propery = newvalue)”。所以这是一个提示。
我很感兴趣如果我只是更改数据并在数据库中更新它会发生什么。奇怪的是,以下工作正常:
case class Agent( var name : String )
object Db extends Instance(
entities = Set( Entity[Agent]() ),
url = "jdbc:h2:mem:hansi"
)
class SORMTest extends FunSuite {
test("Update") {
// Store values in the db:
val agent = Db.save( Agent("test") )
agent.name = "hansi"
Db.save(agent)
}
它在数据库中生成了一条更新语句,该语句更改了相应 id 的 name 属性。
这样做是不是有点疯狂?开发商有什么意见吗?