SELECT * FROM action WHERE json_contains(`condition`->'$[*].action', json_array("6"));
public interface MyMapper<D, E> {
D toDto(E entity);
E toEntity(D dto);
}
public class MyBookMapper implements MyMapper<BookDto, Book> {
@Override
public BookDto toDto(Book entity) {
...
}
@Override
public Book toEntity(BookDto dto) {
...
}
}
При такой работе (при сериализации данных или при вызове метода toString) вы столкнетесь с рекурсией. Например, у автора есть список книг, у книг есть авторы и каждый раз будут вызваны методы, которые будут запрашивать то авторов, которые написали эту книгу, то книги, которые был написаны этим автором. Эти вопросы при работе с Jackson решаются при помощи аннотаций JsonManagedReference & JsonBackReference или JsonIgnore. Для lombok для исключения из toString можно использовать ToString.Ignore.
@Component
public class UnicornMapper {
@Autowired
private ModelMapper mapper;
@Override
public Unicorn toEntity(UnicornDto dto) {
return Objects.isNull(dto) ? null : mapper.map(dto, Unicorn.class);
}
@Override
public UnicornDto toDto(Unicorn entity) {
return Objects.isNull(entity) ? null : mapper.map(entity, UnicornDto.class);
}
}
Не нужно использовать исключения для бизнес-логики! Ненайденая сущность - это не исключительная, а штатная ситуация.
log.debug("Looking for Vote with id " + id)
(вот тут, да, склейка строки будет выполняться всегда, вне зависимости от текущего уровня логирования) на любой код вообще. User-agent: *
Sitemap: /sitemap/sitemap.xml
Sitemap: http://bestsert.by/sitemap/sitemap.xml
А там с этим далеко не просто... есть простой json, есть бинарный jsonb... Пока не проиндексируешь нужные поля объекта - будет full scan. Да и индексы под задачи подбирать надо...
В общем, я бы не рискнул утверждать "особых тормозов от этого запроса не ожидается".
Впрочем, в любом случае надо план смотреть.