1
我用斯卡拉了MyBatis:一個VAL值豆如何改變
Space.scala:
case class Space(
val id: Long ,
spaceName:String)
SpaceDao:
val space=Space(0,"space name")
val mapper = session.getMapper(classOf[SpaceMapper])
val result = mapper.insertSpace(space)
println(space.id)
結果空間ID是MySQL的的自動遞增數,而不是0.但空間和space.id是val,爲什麼可以更改val值?
你怎麼證明'space' id已經改變了? – ka4eli
我在運行插入時跟蹤了代碼,它是同一個對象,但是'id'值是由類SetFieldInvoker中的mybatis改變的,在「field.set(target,args [0])」之後,該字段是「private final long model .Space.id「 –
[Scala反射更新案例類val]的可能重複(http://stackoverflow.com/questions/21431263/scala-reflection-to-update-a-case-class-val) –