How to check if a row is present in vaadin’s grid after filtering

You probably have already tried out filtering feature in your vaadin project if you reached this article. Let’s understand how to get the list of items left in grid after filtering got applied. Read more »

Как передать из spring контроллера hateoas-совместимый список сущностей

Рассмотрим случай передачи из spring контроллера списка сущностей, когда использование создаваемых на лету методов интерфейса spring data почему-то не подходит. Использовать будем hateoas. В данном примере мы будем передавать на вход методу сущность с параметрами поиска в виде JSON, на основе этой сущности потом будет формироваться JPA спецификация для передачи в метод репозитория. Read more »

Как сравнить строки не алфавитно в JPA Specification, преобразовав их в числа

Вводная такая. В постгресе хранятся сущности Topic со строковым полем number, которое, тем не менее, гарантированно хранит число. Так уж получается по требованиям. Нужно при поиски сконструировать предикат, который будет сравнивать это числовое значение с другими числами, т.е. нам не подходит alphabetical comparison. Read more »

Что может пойти не так при использовании hashCode() класса java.lang.String?

В заметке будет рассказано о том, как работает метод hashCode(), как происходят коллизии и об опасности некорректного использования строк в качестве ключей. Read more »

How to implement seamless switching between multiple nextgen galleries on the same page

Let’s assume you have a wordpress page with multiple nextgen galleries. In my case I wanted to keep the sorting order of photos and maintainability and interleave the photos with some text. So, placing all the images into a single gallery wasn’t an option. And I couldn’t find a setting in the plugin to control generation of HTML representation of a gallery so that after reaching the last photo in a gallery you switch to the first photo in the next gallery. In this post I will tell you how to alter this logic. Read more »

Объемный пазл «Лягушка»

В данной заметке я расскажу, как резал, дорабатывал и собирал этот 3d пазл. В качестве материала я выбрал фанеру 6 мм. Для этой толщины и будет прикреплен файл для лазерной резки. Если вы захотите резать на другой толщине, то используйте масштабирование с учетом толщины луча. Я всегда проектирую шиповые соединения так, чтобы ход был тугой: проще немного расширить, чем исправлять болтающиеся части. Read more »

Выставление идентификатора в сериализованном json при использовании spring data rest

Spring data rest является сравнительно новым проектом, одной из задач которого было избавить разработчика от необходимости писать во многих местах повторяющийся код. По какой-то причине авторы решили, что по умолчанию идентификатор (поле с аннотацией @Id) сущности из БД при сериализации выводить не надо, достаточно выводить его в пути. В данной заметке я расскажу, как это исправить. Read more »

Работа с ZonedDateTime в связке postgres + hibernate + spring data

ZonedDateTime — это класс восьмой джавы для представления даты/времени в определенной временнОй зоне. Это может быть запуск ракеты или выход нового релиза программы ZonedDateTime является immutable, т.е. при операциях с объектами класса создается новый объект.
Postgres предоставляет все средства для работы с такими данными.
Read more »

How to get user’s ZoneId in Vaadin

Actually, the task can be split in two subtasks:
— retrieving offset in the form which Vaadin can provide (integer number of milliseconds);
— formatting it so that we could construct ZoneId.
Read more »

How to workaround out of sync values retrieved in the selection listener of a vaadin’s grid

If you compose a sophisticated application with vaadin, you may face an interesting issue: values in the grid got updated (say, via HTTP) and you can see them in the corresponding rows and columns, but you can’t read the actual values when selection listener gets triggered. I will tell how to workaround this issue.
Read more »