Лагом: события не разделены в Кассандре - PullRequest
0 голосов
/ 04 мая 2018

Мне нужно, чтобы мои события были сохранены как json в cassandra (чтобы я мог читать их с помощью некоторого GUI-клиента непосредственно из db).

Я следовал руководству lagom https://www.lagomframework.com/documentation/1.4.x/scala/Serialization.html (Включение сериализации JSON), но события по-прежнему хранятся в каком-то двоичном или другом формате.

Вот что я сделал:

Создан реестр сериализатора

object ProjectSerializerRegistry extends JsonSerializerRegistry {
  override def serializers: Seq[JsonSerializer[_]] = Seq(
    JsonSerializer[ProjectCreated],    
  )
}

Зарегистрировано:

abstract class ProjectsApplication(context: LagomApplicationContext)
  extends LagomApplication(context)
    with CassandraPersistenceComponents
    with LagomKafkaComponents
    with AhcWSComponents {

  ...
  // Register the JSON serializer registry
  override lazy val jsonSerializerRegistry = ProjectSerializerRegistry
}

Вот само событие:

case class ProjectCreated(id: String, name: String, createdAt: DateTime) extends ProjectEvent

object ProjectCreated {
  implicit val format: OFormat[ProjectCreated] = Json.format[ProjectCreated]
}

После отправки команды сущности, которая вызывает событие ProjectCreated и выполнения запроса select event from projects.messages Я ожидал увидеть что-то подобное в Кассандре:

{
   "id": "prj-1",
   "name": "Project 1",
   "createdAt": "2018-05-04 01:16:00" 
}

Но вместо этого я вижу что-то подобное в столбце event:

0x7b226d657373616765223a224869227d

Я что-то пропустил? Или это может быть какое-то сжатое или закодированное значение json?

1 Ответ

0 голосов
/ 14 мая 2019

Это в шестнадцатеричном формате. Вы можете преобразовать его в строку, используя онлайновый шестнадцатеричный декодер, например https://codebeautify.org/hex-string-converter, или создать его самостоятельно.

...