Как пропустить значения $ EmptyMap размера = 0 в scala - PullRequest
1 голос
/ 12 марта 2020

Я использую запрос SQL, чтобы получить данные и сопоставить имя и значение столбца с кортежем, затем сопоставить набор кортежей со списком карт, мне нужно пропустить карты с размером 0 и получить только карты со значениями.

Мой код и результаты выглядят следующим образом.

SELECT orbkn_surgery_procedures_order_status,orbkn_surgery_procedures_id,orbkn_surgery_procedures_or_booking,orbkn_surgery_procedures_created_date_time,orbkn_surgery_procedures_order_id FROM OR_Cube_for_surgery

    try {
  NamedDB(Symbol(db)) readOnly { implicit session =>

      Right(

        SQL(sql + " LIMIT 50000")
          .map(_.toMap())
          .list
          .apply()
      )
  }

Набор результатов Я получаю

Right(List(Map(), Map(orbkn_surgery_procedures_id -> 41, orbkn_surgery_procedures_or_booking -> 734, orbkn_surgery_procedures_order_id -> 105610),Map(orbkn_surgery_procedures_order_status -> OPD, orbkn_surgery_procedures_id -> 174, orbkn_surgery_procedures_or_booking -> 883, orbkn_surgery_procedures_order_id -> 100788), Map(orbkn_surgery_procedures_order_status -> IPD, orbkn_surgery_procedures_id -> 175, orbkn_surgery_procedures_or_booking -> 884, orbkn_surgery_procedures_order_id -> 106321), Map(orbkn_surgery_procedures_order_status -> IPD, orbkn_surgery_procedures_id -> 176, orbkn_surgery_procedures_or_booking -> 886, orbkn_surgery_procedures_order_id -> 106354),Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map()))

Мне нужно чтобы избавиться от этих Map() и получить только набор карт (с любыми данными)

1 Ответ

5 голосов
/ 12 марта 2020

Вам нужно отфильтровать список Map s, чтобы удалить пустые, что-то вроде этого:

Right(
  SQL(sql + " LIMIT 50000")
    .map(_.toMap())
    .list
    .apply()
    .filter(_.nonEmpty)
)

Однако было бы лучше поместить фильтр в SQL, если это возможно, и пусть база данных сделает всю работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...