mirage-scalaではケースクラスをエンティティとして使うことができるのですが、「DBを検索」→「一部のプロパティを変更」→「更新」みたいなことをやりたいときはケースクラスのcopyメソッドを使用するとよさげです。
case class Book( @(PrimaryKey @field)(generationType = IDENTITY) bookId: Pk[Long], bookName: String, author: String, price: Option[Int])
変更したいプロパティだけ渡し、それ以外は元のエンティティのプロパティをコピーしたインスタンスを簡単に作ることができます。
// 検索してエンティティを取得 val id: Long = ... val book = sqlManager.findEntity[Book](id).get // bookNameプロパティを変更して更新 sqlManager.updateEntity(book.copy(bookName = "Mirage in Action"))