#jooq — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #jooq, aggregated by home.social.
-
JPA отлично справляется с полными графами. А что насчёт частичных?
JPA не предоставляет first-class модель для частичных вложенных графов как концепта. Для этого нужны JDBC (ручная сборка), jOOQ (MULTISET) или Blaze Persistence (Entity Views). Большинство обсуждений вокруг persistence начинается не с той проблемы. Мы сравниваем фреймворки, SQL-инструменты, ORM… Но реальная проблема проще и фундаментальнее: Реляционный JOIN результат имеет плоскую форму по умолчанию. Приложениям нужны вложенные объектные графы или специализированные формы данных. Реляционная реальность Рассмотрим простую модель: Owner → Pet → Visit В реляционной базе — три таблицы с foreign key связями. После JOIN:
https://habr.com/ru/articles/1044354/
#jpa #Hibernate #Blaze_Persistence #Entity_Views #jOOQ #MULTISET #JDBC #SQL #ORM #EntityGraph
-
JPA отлично справляется с полными графами. А что насчёт частичных?
JPA не предоставляет first-class модель для частичных вложенных графов как концепта. Для этого нужны JDBC (ручная сборка), jOOQ (MULTISET) или Blaze Persistence (Entity Views). Большинство обсуждений вокруг persistence начинается не с той проблемы. Мы сравниваем фреймворки, SQL-инструменты, ORM… Но реальная проблема проще и фундаментальнее: Реляционный JOIN результат имеет плоскую форму по умолчанию. Приложениям нужны вложенные объектные графы или специализированные формы данных. Реляционная реальность Рассмотрим простую модель: Owner → Pet → Visit В реляционной базе — три таблицы с foreign key связями. После JOIN:
https://habr.com/ru/articles/1044354/
#jpa #Hibernate #Blaze_Persistence #Entity_Views #jOOQ #MULTISET #JDBC #SQL #ORM #EntityGraph
-
JPA отлично справляется с полными графами. А что насчёт частичных?
JPA не предоставляет first-class модель для частичных вложенных графов как концепта. Для этого нужны JDBC (ручная сборка), jOOQ (MULTISET) или Blaze Persistence (Entity Views). Большинство обсуждений вокруг persistence начинается не с той проблемы. Мы сравниваем фреймворки, SQL-инструменты, ORM… Но реальная проблема проще и фундаментальнее: Реляционный JOIN результат имеет плоскую форму по умолчанию. Приложениям нужны вложенные объектные графы или специализированные формы данных. Реляционная реальность Рассмотрим простую модель: Owner → Pet → Visit В реляционной базе — три таблицы с foreign key связями. После JOIN:
https://habr.com/ru/articles/1044354/
#jpa #Hibernate #Blaze_Persistence #Entity_Views #jOOQ #MULTISET #JDBC #SQL #ORM #EntityGraph
-
I like how intensively one of my favourite #Java Project tests one of my favourited #Databases…
-
I like how intensively one of my favourite #Java Project tests one of my favourited #Databases…
-
[Перевод] Spring Data. На пути к более строгой типизации
В новом переводе от команды Spring АйО разберем, почему stringly-typed API со временем становятся хрупкими, чем помогают метамодели вроде Querydsl и JPA Criteria, и как новый механизм в Spring Data даёт более лёгкую и естественную альтернативу без лишней инфраструктуры сборки.
https://habr.com/ru/companies/spring_aio/articles/1014920/
#spring #spring_data #spring_boot #spring_framework #java #kotlin #jooq
-
[Перевод] ORM это Вьетнамcкая Война Компьютерных Наук
Данная публикация является переводом статьи Jeff-a Atwood-а почти 20-ти летней давности. Jeff Atwood, один из фаундеров StackOverFlow, написал эту статью как некоторое резюме того, как человечество боролось с проблемой O/R Impedance Mismatch. Я частично принимаю участие в написании разных ORM решений, например, Spring Data JDBC / R2DBC , и скоро
https://habr.com/ru/companies/spring_aio/articles/972316/
#java #orm #springdata #hibernate #jdbc #jooq #database #rdbms
-
Spring-boot-starter для паттерна Transaction outbox Kafka
В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет. В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter , который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.
https://habr.com/ru/articles/966802/
#kotlin #java #spring #springboot #starter #spring_boot_starter #kafka #outbox #jooq #spring_data_jpa
-
Что такое JOOQ и как его едят на примере Kotlin + Gradle + JOOQ
Всем привет, сегодня я бы хотел поговорить про JOOQ для чего, зачем и почему и немного сравнить его с Hibernate, Spring data JPA. Долгое время я работал только с Hibernate, Spring data JPA и думал, что лучше них не будет и конкурентов ТОЧНО НЕТ, пока не встретил JOOQ. Сегодня расскажу подробнее что за инструмент, как его лучше приготовить и когда выбрать.
https://habr.com/ru/articles/965018/
#jooq #jooqcodegen #hibernate #spring_data_jpa #kotlin #java
-
Friends, I'm looking for contracts in HealthCare IT (20+ yrs in this domain, 40+ yrs in IT). Done two #FOSS clinical data repository. Now on federated clinical data analytics. Expert in #openEHR, #FHIR, #SNOMED-CT, PACS, MPI, #Kotlin, #Java, #python, DB: #SQL (#PostgreSQL!), #jOOQ, #distributedSQL, #KnowledgeGraph, APIs, #docker, #linux, #Unix... Very keen on medical projects benefiting rural and/or developing communities. Also looking for tutoring, compliance, security and SOPs. TIA!
-
📢 #Komunumo Status Update
In the past 2 weeks I redesigned the login with passwordless auth and built a generalized email confirmation, now also used for event registration.
Next: defining MVP steps → fewer commits, more activity on the project board.
Open PR from #Hackergarten Zurich (online editor for global pages) will be pitched again on Sep 25 👉 https://meetup.com/hackergarten-zurich/events/310517961/
Happy to support contributors – especially via remote pair programming! 💡
-
📢 #Komunumo Status Update
In the past 2 weeks I redesigned the login with passwordless auth and built a generalized email confirmation, now also used for event registration.
Next: defining MVP steps → fewer commits, more activity on the project board.
Open PR from #Hackergarten Zurich (online editor for global pages) will be pitched again on Sep 25 👉 https://meetup.com/hackergarten-zurich/events/310517961/
Happy to support contributors – especially via remote pair programming! 💡
-
Как мы затащили jOOQ в высоконагруженный проект с Postgres
Привет, Хабр. Меня зовут Михаил Тимошкин. Я тимлид в команде Тематических каналов в Дзене. Одна из классических головных болей при создании сервиса — синхронизация кода приложения со схемой БД. Есть много инструментов для управления изменениями схемы базы данных, таких как Liquibase или Flyway, для которых существуют плагины с кодогенерацией. Но что, если на проекте ничего подобного нет? Хорошая новость в том, что даже в такой ситуации можно найти эффективное решение! В этом мы убедились на собственном опыте при переходе с Hibernate на jOOQ. В этой статье я расскажу, с какой проблемой мы столкнулись, какие решения рассматривали и что получили в итоге.
-
Just published a blog post on optimizing Gradle builds with Docker, Flyway, jOOQ & Postgres 🐘🐳🐦
I hit a weird issue where the DB started up even when everything was up-to-date. Turns out: Gradle task graphs & build services can be tricky!
Here’s how I fixed it with a cleaner setup 👇
https://britter.dev/blog/2025/07/22/gradle-jooq-docker/ -
Just published a blog post on optimizing Gradle builds with Docker, Flyway, jOOQ & Postgres 🐘🐳🐦
I hit a weird issue where the DB started up even when everything was up-to-date. Turns out: Gradle task graphs & build services can be tricky!
Here’s how I fixed it with a cleaner setup 👇
https://britter.dev/blog/2025/07/22/gradle-jooq-docker/ -
`net.ltgt.jooq` (and `net.ltgt.jooq-kotlin`) is an alternative to the official jOOQ plugin, or Etienne Studer's plugin, that unnecessarily bloat your build scripts with the generator configuration; also meant to be run at dev time with generated files committed to your repo.
-
`net.ltgt.jooq` (and `net.ltgt.jooq-kotlin`) is an alternative to the official jOOQ plugin, or Etienne Studer's plugin, that unnecessarily bloat your build scripts with the generator configuration; also meant to be run at dev time with generated files committed to your repo.
-
I’ve been learning Spring Boot and jOOQ for a potential gig and for the most part I like both quite a bit so far! Both seem to have reasonably intuitive DSLs that fit well with Kotlin.
-
I’ve been learning Spring Boot and jOOQ for a potential gig and for the most part I like both quite a bit so far! Both seem to have reasonably intuitive DSLs that fit well with Kotlin.
-
Спасаемся от Spring: есть ли альтернативы репозиторным фреймворкам? Часть вторая. Альтернативы
В предыдущей статье мы обсудили недостатки решений Spring в части доступа к данным. В ходе анализа решений Spring стало очевидно, что оба фреймворка используют радикально разные подходы в работе с данными. Казалось бы, контроль над запросами очень важен для приложений, особенно высоконагруженных. Но Spring Data JPA такого контроля не даёт. Лёгкость и простота изменения кода является залогом его чистоты и работоспособности, однако с этим есть сложности уже у Spring JDBC. Всего-то нужен фреймворк, предоставляющий полный контроль над запросами со стороны разработчика и не создающий трудностей при развитии, изменении и рефакторинге кода. В этой статье мы разберём две альтернативы, которые, на мой взгляд, в меньшей степени подвержены проблемам Spring Data JPA и Spring JDBC. Это будут jOOQ и Exposed.
https://habr.com/ru/companies/sberbank/articles/906590/
#java #kotlin #spring #jooq #exposed #spring_data_jpa #spring_jdbc
-
Спасаемся от Spring: есть ли альтернативы репозиторным фреймворкам? Часть первая. Решения Spring
С точки зрения доступа к базе данных, Java-сообщество однозначно делится на два лагеря: одни любят Spring Data JPA за его простоту и низкий порог вхождения, другие предпочитают Spring JDBC за его точность и возможность тюнинга запросов. И кого останавливает, что и то, и другое — Spring? Какую сторону выбрать? И Spring Data JPA, и Spring Data JDBC, при их очевидных достоинствах, имеют недостатки, делающие разработку на них не очень подходящей для прода. Эти решения являются двумя крайностями, а нам нужна золотая середина. Вы спросите: какие альтернативы? И я отвечу: давайте посмотрим на проблему шире. Вы джавист? Вам повезло — есть хорошая альтернатива. Котлинист? Ещё лучше — есть отличная альтернатива! О них и поговорим.
https://habr.com/ru/companies/sberbank/articles/890338/
#java #kotlin #spring #jooq #exposed #spring_data_jpa #spring_jdbc
-
Few of my "top three":
#postgresql the Linux of DB
#JOOQ modernized querying the above and many others
#Kotlin makes coding great again 😉None of my boxes run Kro$oft btw (totally banned at home as well)
-
Few of my "top three":
#postgresql the Linux of DB
#JOOQ modernized querying the above and many others
#Kotlin makes coding great again 😉None of my boxes run Kro$oft btw (totally banned at home as well)
-
Found 3 SQL injections in an 2 month old Java application. They used jooq raw sql and simply string.replace the placeholders before passing it to context.fetch instead of passing the values as arguments to fetch 🙄🤷
#Java #jooq #SQLinjection -
Found 3 SQL injections in an 2 month old Java application. They used jooq raw sql and simply string.replace the placeholders before passing it to context.fetch instead of passing the values as arguments to fetch 🙄🤷
#Java #jooq #SQLinjection -
JOOQ — не замена Hibernate. Они решают разные проблемы
Последние год-полтора я натыкаюсь на статьи и доклады (особенно в англоязычном сегменте) о том, что JOOQ – это современная и более крутая альтернатива Hibernate. Скажу сразу, что я считаю JOOQ отличной библиотекой (именно библиотекой, а не фреймворком, в отличие от Hibernate). Он прекрасно справляется со своей задачей – работой с SQL в режиме статической типизации, чтобы отловить большинство ошибок на этапе компиляции. Но когда я слышу аргумент, что время Hibernate прошло и пора все писать на JOOQ, для меня это звучит примерно так же, как то, что время реляционных БД прошло и теперь нужно использовать только NoSQL. Звучит смешно? Но по меркам истории буквально вчера такие разговоры велись вполне серьезно. Я думаю, дело кроется в непонимании корневых проблем, которые решают эти два инструмента. Этой статьей я хочу ответить на эти вопросы.
https://habr.com/ru/articles/872562/
#java #hibernate #jpa #orm #программирование #jooq #sql #базы_данных
-
Почему JOOQ — идеальный инструмент для работы с БД при интеграционном тестировании API
Привет! Меня зовут Евгений, я SDET-специалист в SimbirSoft. Хочу поделиться примером того, как я автоматизировал тестирование API, заменив встроенные JDBC-средства на JOOQ. И расскажу, почему считаю это лучшим решением. Все началось с того, что передо мной поставили задачу автоматизировать тестирование API с проверкой данных в БД. Так как проект только начинался, а я один отвечал за эту часть работы, то надо было сделать всё с нуля. Мне хотелось сделать все идеально (удобно, понятно, масштабируемо, с удобной поддержкой кода). Получилось все, кроме одного — масштабирование сверки данных из БД. Об этом и пойдет речь. А в конце вы найдете ссылку на исходный код. Читать далее 🐞
https://habr.com/ru/companies/simbirsoft/articles/817253/
#jooq #jdb #тестирование_api #интеграционное_тестирование #автотесты #spring_data_jpa
-
JOOQ. Введение
Техническое и философское осмысление библиотеки для взаимодействия с базой данных JOOQ . В введении мы бегло, но точно, пробежимся по верхам, что бы создать некоторый костях того, что в последующих статьях будет обрастать плотью.
-
Tu as la syntax standard orienté sql, les active records et les repositories...
Meilleures de tous les mondes 🤩
-
Tu as la syntax standard orienté sql, les active records et les repositories...
Meilleures de tous les mondes 🤩
-
There's a lot going on at the #Java User Group Switzerland this week! On Tuesday, @SimonMartinelli will talk about #CQRS on a small scale with Java #Records and #jOOQ in #Bern (🇩🇪), on Wednesday @ixchelruiz is organizing a meeting with the tech community in #Basel to celebrate #IWD (International Women's Day) (🇬🇧), and on Thursday we'll be following in the footsteps of architectural art with Meteo Switzerland in #Zurich (🇩🇪), followed by our annual general meeting (🇩🇪). Looks like a busy week!
-
There's a lot going on at the #Java User Group Switzerland this week! On Tuesday, @SimonMartinelli will talk about #CQRS on a small scale with Java #Records and #jOOQ in #Bern (🇩🇪), on Wednesday @ixchelruiz is organizing a meeting with the tech community in #Basel to celebrate #IWD (International Women's Day) (🇬🇧), and on Thursday we'll be following in the footsteps of architectural art with Meteo Switzerland in #Zurich (🇩🇪), followed by our annual general meeting (🇩🇪). Looks like a busy week!
-
How cool is that? Two of my favorite things coming together. #jOOQ and #DuckDB
Well done, @lukaseder
-
How cool is that? Two of my favorite things coming together. #jOOQ and #DuckDB
Well done, @lukaseder
-
I just updated a ~10 year old application I started in pre #SpringBoot 1 from v2.7 to the latest 3.2, and I have to say, it was flawless now that with ActiveMQ finally has a Jakarta version out.
Hat tip to the #SpringSecurity team, for once I do find the "new" way here way nicer, well done.
-
I just updated a ~10 year old application I started in pre #SpringBoot 1 from v2.7 to the latest 3.2, and I have to say, it was flawless now that with ActiveMQ finally has a Jakarta version out.
Hat tip to the #SpringSecurity team, for once I do find the "new" way here way nicer, well done.
-
How to implement a read-only one-to-many relationship with #jOOQ: https://www.petrikainulainen.net/programming/jooq/jooq-tips-implementing-a-read-only-one-to-many-relationship/ - Note that this approach doesn't require any extra dependencies.
-
How to implement a read-only one-to-many relationship with #jOOQ: https://www.petrikainulainen.net/programming/jooq/jooq-tips-implementing-a-read-only-one-to-many-relationship/ - Note that this approach doesn't require any extra dependencies.
-
@chriscochrun @ademalsasa
Retrospectively, my favorite experience has been with Smalltalk like OOP framework (msg passing between object instances, late binding). I believed at that time that the future would turn to be "pure" distributed Objects systems (CORBA was no picnic however).Today, my work is essentially DB-centric, using #Java, #jOOQ and distributed SQL (YugabyteDB in particular)
-
@Incognitim you could consider using #Java #jOOQ #SpringBoot for the backend if online, or even #Vaadin with jOOQ for a standalone application.
-
@Incognitim you could consider using #Java #jOOQ #SpringBoot for the backend if online, or even #Vaadin with jOOQ for a standalone application.
-
Sooner or later, every developer will wrestle with the problem of getting their language to talk #SQL. And we've tried every solution from string-mundging to annotation-driven EJBs. (🤮)
So this week we're putting a new answer under the microscope: #jOOQ!
🎧 https://pod.link/developer-voices/episode/200c774159fa03159ccfff5a57705079
-
Après avoir bravé la chaleur de @[email protected] ☀️, voici les slides de la conférence sur @[email protected] 🚀
https://link.davinkevin.fr/jooq-riviera23-slides
Merci d'être venu si nombreux, c'est toujours un énorme plaisir de partager cela avec vous ♥️
-
How to fetch multiple to-many relationships with #jOOQ #MULTISET https://vladmihalcea.com/fetch-multiple-to-many-jooq-multiset/
-
How to use jOOQ with Testcontainers and, Flyway – Simon Martinelli https://martinelli.ch/how-to-use-jooq-with-testcontainers-and-flyway/
#testcontainers #Java #jooq -
@synlogic @ghorwood
For #Java, I would replace the last one with"3. expert/never-hipster: uses jOOQ"
When I discovered #jOOQ years ago, it was eye-opening. One can really get the same level of control as with hand-written #SQL bit still have a comfortable API! Its author @lukaseder says that the guiding principle for designing this #FluentAPI is that jOOQ *is* SQL.
See the comparison image in this post: https://foojay.social/@foojay/110067514875132847