Просмотрено
Category: Без рубрики

JPA Criteria API

JPA Criteria API

Выборка записей с максимальной датой в разрезе значений определённого поля На SQL выражение выглядит так (записи с максимальным create_timestamp у каждого sender’а): Но т.к. criteria api поддерживает подзапросы полько в секции where, то можно реализовать только такой запрос (будет делать то же самое): Если реализовать интерфейс Specification, то он будет выглядеть так: При этом, это поля из модели, сгенерированные maven-плагином: Выборка записей с максимальной датой На SQL выражение выглядит так (записи с максимальным create_timestamp): Если реализовать интерфейс Specification, то он…

Читать далее Читать далее

Логгирование обращений к базе данных в Spring Boot

Логгирование обращений к базе данных в Spring Boot

Чтобы логгировать SQL-запросы к базе данных — нужно добавить следующие свойства: Ещё есть вариант использовать библиотеку p6spy, которая будет писать в лог настоящие запросы:

Настройка Gitlab CI/CD для java приложения

Настройка Gitlab CI/CD для java приложения

1. Создание раннера Для начала нам нужно организовать постоянно работающий процесс (runner), который будет выполнять все задачи по нашему CICD (т.е. задания билдинга, проверки, закрузки на сервер и выполнения в нём каких-то команд). Кстати, у гитлаба есть много разных публичных runner’ов, но, во-первых — я бы не хотел чтобы код моего закрытого репозитория улетал на какие-то непонятные раннеры, во-вторых — раннер надо настроить под конкретную задачу, чтобы адекватно кешировались промежуточные результаты и не тормозил весь процесс снова и снова проделывая…

Читать далее Читать далее

JPA relations

JPA relations

Один ко многим БД: Branch. Справочная таблица реквизитов банка для денежных счетов. Поле Тип Описание Ограничения id varchar(32) Город операционного офиса банка PK bank varchar(256) Наименование офиса (для реквизитов перевода) not null bik varchar(9) БИК Branch_Code. Справочная таблица соответствия города и кода отделения банка. Поле Тип Описание Ограничения code integer Код отделения PK branch_id varchar(256) Город отделения not nullFK на branch.id при удалении записи в branch производится каскадное удаление Liquibase: Java: Один ко многим без @Id Один к одному Один…

Читать далее Читать далее

Установить Active MQ и IBM MQ локально

Установить Active MQ и IBM MQ локально

Речь идёт об установке данных систем локально с помощью Docker. Active MQ https://hub.docker.com/r/rmohr/activemq Запуск: 12docker pull rmohr/activemq docker run -p 61616:61616 -p 8161:8161 rmohr/activemq Подключение к web: http://localhost:8161/admin Логин/пароль: admin admin IBM MQ https://hub.docker.com/r/ibmcom/mq How to: https://github.com/ibm-messaging/mq-container/blob/master/docs/usage.md Запуск: 12docker pull ibmcom/mq docker run —env LICENSE=accept —env MQ_QMGR_NAME=QM1 —publish 1414:1414 —publish 9443:9443 —detach ibmcom/mq Подключение к web: https://localhost:9443/ Логин/пароль: admin passw0rd Имя администратора очередей: QM1 Канал: DEV.ADMIN.SVRCONN

Spring boot + i18n + Thymeleaf

Spring boot + i18n + Thymeleaf

Пошагавая инструкция как настроить интернационализацию в приложении на Spring. Пишу эту статью потому что там много нюансов, чтобы их самому не забыть). Исходные данные: Пустой проект на Java 11, созданный при помощи https://start.spring.io/ с зависимостями Spring Web, Thymeleaf. Для запуска интернационализации на проекте Spring Boot достаточно создать бандлы (файлы .properties) и объявить Bean — MessageSource. Создадим пару файлов: 1src\main\resources\locale\messages\app.properties 1src\main\resources\locale\messages\app_ru.properties со следующим содержимым соответственно: 12registration.label = Sign Up<br /> login.label=Sign In 12registration.label = Регистрация<br /> login.label=Вход Чтобы быстренько увидить работающую…

Читать далее Читать далее

Java + Apache Kafka = Первый проект

Java + Apache Kafka = Первый проект

Статья разбита на 2 части: Установка Kafka на сервер и создание SpringBoot приложения. Если вы вообще не в курсе за брокеров сообщений, то советую посмотреть два видосика про Apache Kafka и Rabbit MQ. Они дадут понимание как там что работает и чем отличается: I. Установка Apache Kafka В качестве базовой системы у меня CentOS 7 x86_64 Minimal 1804. Для кафки рекомендуется иметь 4 Gb оперативки. Перед началом работы ставлю нужные мне программы: sudo yum install mc nano net-tools wget -y…

Читать далее Читать далее