Я не могу обновить поля внутри иностранного объекта, используя .copy(..)
и Db.save
. Никакое исключение не выбрасывается вообще, и T with Persisted
, который возвращается из метода, отражает то, что я пытался обновить. Однако, когда я пытаюсь получить значение с помощью Db.query
или Db.fetchById
, обновляются только не-иностранные поля. Например:Как обновить внешний объект?
case class Foo (a: String)
case class Bar (b: String, barfoo: Foo)
....
....
val foo1 = Db.save(Foo("Hello"))
val bar1 = Db.save(Bar("World", foo1))
val result = Db.save(bar1.copy(b="Beatiful World",
barfoo = bar1.barfoo.copy(a = "Hello My")))
println(result) // Prints: Bar(1,Beatiful World,Foo(1,Hello My))
println(Db.fetchById[Bar](result.id)) // Prints: Bar(1,Beatiful World,Foo(1,Hello))
Итак, как вы можете увидеть barfoo
поле не был обновлен.
Это неправильный подход к обновлению иностранных объектов? или, возможно, это ошибка?
Я использую SORM v0.3.12 кстати.
Спасибо за разъяснение. Это работает. – jsonmurphy