override def toEntity()

in datastore/src/main/scala/magnolify/datastore/EntityType.scala [161:193]


        override def toEntity(v: T)(cm: CaseMapper): Entity.Builder =
          caseClass.parameters.foldLeft(Entity.newBuilder()) { (eb, p) =>
            val value = p.dereference(v)
            val vb = p.typeclass.to(value)(cm)
            if (vb != null) {
              eb.putProperties(
                cm.map(p.label),
                vb.setExcludeFromIndexes(excludeFromIndexes(p.index))
                  .build()
              )
            }
            if (p.index == keyIndex) {
              val k = keyOpt.get
              val partitionId = {
                val b = PartitionId.newBuilder()
                if (k.project != null) {
                  b.setProjectId(k.project)
                }
                b.setNamespaceId(if (k.namespace != null) k.namespace else caseClass.typeName.owner)
              }
              val path = {
                val b = Key.PathElement.newBuilder()
                b.setKind(if (k.kind != null) k.kind else caseClass.typeName.short)
                p.typeclass.keyField.setKey(b, value)
              }
              val kb = Key
                .newBuilder()
                .setPartitionId(partitionId)
                .addPath(path)
              eb.setKey(kb)
            }
            eb
          }