Описание тега doobie

Doobie - это чисто функциональный слой JDBC для Scala и Cats.
1 ответ

Как подключиться к Hive с помощью doobie

Существует драйвер jdbc для улья, но он не полностью функционирует. Я использовал по умолчанию Doobie Transactor для подключения к нему, как val xa = Transactor.fromDriverManager[IO]( "org.apache.hive.jdbc.HiveDriver", url, username, pass ) myQuery.…
12 окт '18 в 16:01
0 ответов

Scala Doobie запрашивает жестко закодированные значения

При написании следующего запроса в Doobie: (SELECT id FROM (VALUES(?),(?),(?)) table(id)) UNION SELECT id FROM table У меня есть список данных, например, список (1,2,3,4), который различного размера. Как я могу интерполировать список значений в SQL …
29 май '18 в 00:37
2 ответа

Создать список экземпляров класса дел

У меня есть 3 вальса, каждого типа Array[String] все они равны по длине val1.length == val2.length // true Затем я создал класс case следующим образом: case class resource(name: String, count: Int, location: String) Я хочу создать список, List[resou…
02 май '18 в 11:59
1 ответ

Как мне создать экземпляр Meta Doobie для MySQL, используя Play JSON?

Как реализовать базовую сериализацию / десериализацию на уровне запросов с использованием Doobie, MySQL и Play JSON?
02 окт '18 в 20:41
0 ответов

Повторная попытка Monix Task - почему здесь требуется Task.defer?

Недавно я обнаружил случай, который я не могу полностью понять, работая с Monix Task: Есть две функции (в очереди обработчик сообщений): def handle(msg: RollbackMsg): Task[Unit] = { logger.info(s"Attempting to rollback transaction ${msg.lockId}") Ta…
0 ответов

Параллельный запуск запросов в Doobie

Можно ли выполнять несколько запросов параллельно, используя Doobie? У меня есть следующие (псевдо) запросы: def prepareForQuery(input: String): ConnectionIO[Unit] = ??? val gettAllResults: ConnectionIO[List[(String, BigDecimal)]] = ??? def program(…
2 ответа

Scala Doobie фрагмент с параметром универсального типа

Я пытаюсь абстрагироваться от вставки объектов разных типов в таблицы SQL аналогичной структуры. Вот что я пытаюсь сделать: class TableAccess[A : Meta](table: String) { def insert(key: String, a: A): ConnectionIO[Unit] = { (fr"insert into " ++ Fragm…
17 фев '18 в 02:47
1 ответ

Doobie с настройкой Hikari

Эй, ребята, пытаясь заставить настройку Hikari Transactor действовать так же, как стандартный Transactor val xa = HikariTransactor.newHikariTransactor[IO]( "com.mysql.jdbc.Driver", JdbcUrl, Username, Password ) sql"""select DISTINCT gcpProject FROM …
20 фев '18 в 22:45
2 ответа

Составить необязательные запросы для понимания в doobie?

Я хотел бы выполнить несколько запросов в одной транзакции, используя для понимания в doobie. Что-то вроде: def addImage(path:String) : ConnectionIO[Image] = { sql"INSERT INTO images(path) VALUES($path)".update.withUniqueGeneratedKeys('id', 'path') …
23 фев '18 в 09:07
0 ответов

Структура микросервиса Scala: чтение и запись выполняются двумя отдельными объектами

Итак, у нас есть сценарий использования, когда мы читаем файл и храним его в хранилище NoSQL в нескольких сегментах. Это выполняется объектом, который настроен для запуска этого задания как daemon Периодически, думаю, что запланированный сервис Но, …
30 мар '18 в 13:07
1 ответ

Как написать транзакцию Дуби, когда IO застрял в середине

Я хочу написать базовую транзакцию чтения / записи Дуби, но главное, что есть IO ответный звонок посередине. Я хочу сделать что-то вроде этого: abstract class MyDAO { def readSomething(id: String): ConnectionIO[Option[Something]] def writeSomething(…
13 дек '18 в 20:43
1 ответ

Преобразование Doobie ConnectionIO[Option[Int]] без явного соответствия

У меня есть ConnectionIO[Option[Int]] и карта над Option производить ConnectionIO[Option[String]] с запросом Some[Int] в противном случае сохраните Nones. I was able to do this with aзаcomprehension and amatch`: def findWidgetByOwner(name: String): …
19 фев '18 в 00:35
2 ответа

Получить или вставить в транзакции на Doobie в Scala

Я читаю документацию Doobie и пытаюсь выполнить простое получение или создание внутри транзакции. Я получаю опцию от первого запроса и пытаюсь сделать getOrElse и запустить вставку в остальном, однако я продолжаю получать value map is not a member o…
22 дек '18 в 09:27
1 ответ

Транзакция Doobie по списку программ ConnectionIO

Допустим, у меня есть список программ Doobie (все с Unit параметры типа, fwiw): val progList: List[ConnectionIO[Unit]] = prog1 :: prog2 :: ... :: Nil Есть ли способ, которым я могу запустить их в одной транзакции? Понимание здесь не сработает, потом…
29 июл '18 в 13:45
1 ответ

Состав Doobie и доступа к БД за 1 транзакцию

Книга Doobie говорит, что это хорошая практика, чтобы вернуть ConnectionIO из вашего уровня хранилища. Это дает возможность связывать звонки и выполнять их за одну транзакцию. Красиво и понятно. Теперь давайте представим, что мы работаем над сервис…
22 май '18 в 16:55
2 ответа

Перечислите несколько анонимных / подчеркивающих параметров для понимания

Я немного новичок в Scala/ функционал, поэтому я еще не могу использовать технический язык. Я испытываю проблемы с пониманием val queries = for { _ <- createBanco _ <- createBancoMedio bankInsertions <- Update[Banco](insertStr).updateMany(N…
1 ответ

Скала (doobie): тип инвариантен

Я работаю над проектом со Scala и Doobie. Я пытаюсь реализовать черту транзактора, которая может быть введена MacWire и использована с различными монадами Task/Future (например, для тестов). import doobie.imports import doobie.imports._ import fs2.T…
30 авг '17 в 15:27
2 ответа

Как правильно обрабатывать пул соединений Hikari с Doobie

Я использовал doobie (cats), чтобы подключиться к базе данных postgresql из приложения scalatra. Недавно я заметил, что приложение создает новый пул соединений для каждой транзакции. В конце концов я обошел это - см. Ниже, но этот подход сильно отли…
0 ответов

Doobie. Создайте.update.withGeneratedKeys() и.update.run

Ссылка на этот вопрос.Я хочу вставить некоторую сущность по какому-то условию. Это может быть вставлено или нет. Тогда условие истинно, и сущность вставлена, я хочу вставить некоторые другие данные в различные таблицы. Это выглядит так: val q = sql"…
30 май '19 в 07:16
1 ответ

Как получить дополнительный результат в операторах вставки с Doobie?

У меня есть дополнительный запрос вставки: val q = sql"insert into some_table (some_field) select 42 where ...(some condition)" Выполнение этого запроса с: q.update.withUniqueGeneratedKeys[Option[Long]]("id") не удается с Набор результатов исчерпан:…
28 май '19 в 12:24