3

json4sGameを使用してシリアル化/逆シリアル化するのに問題のないケース クラスがあります。

case class Game(name: String,publisher: String,website: String, gameType: GameType.Value)

私のアプリでは、ORM としてmapperdaoを使用しています。私が持っていないサロゲートIDGameを使用しているため、そのコンストラクターの一部を持っていません。id

ただし、mapperdao が DB からエンティティを返すとき、トレイトを使用して永続化されたオブジェクトの ID を提供します。

Game with SurrogateIntId

特性のコードは

trait SurrogateIntId extends DeclaredIds[Int]
{
    def id: Int
}

trait DeclaredIds[ID] extends Persisted

trait Persisted
{
    @transient
    private var mapperDaoVM: ValuesMap = null
    @transient
    private var mapperDaoDetails: PersistedDetails = null
private[mapperdao] def mapperDaoPersistedDetails = mapperDaoDetails

private[mapperdao] def mapperDaoValuesMap = mapperDaoVM

private[mapperdao] def mapperDaoInit(vm: ValuesMap, details: PersistedDetails) {
    mapperDaoVM = vm
    mapperDaoDetails = details
}
.....
}

シリアル化しようとするとGame with SurrogateIntId、空の括弧が返されます。これは、json4s が添付された特性を処理する方法を知らないためだと思います。

gameidT with SurrogateIntIdすべてのドメイン オブジェクトに対してこれらを使用するのとほぼ同じくらい重要なことに、そのプロパティに追加されたものだけをシリアル化する方法が必要です。

誰でも私を助けることができますか?

4

1 に答える 1