Я удивлен, что я не смог пройти мимо этого раньше в java. Я знаю, что могу решить это, используя объекты декоратора, но мне было интересно, может ли кто-нибудь подумать о более сжатом способе этого.Сортировка списка по бизнес-логике ids
У меня есть метод, который принимает список идентификаторов. Внутри метода я делаю некоторые манипуляции, извлекаю объекты из db и т. Д. В конце метода порядок результирующего списка не гарантируется. Я хочу заказать его по идентификатору в идентификаторах, которые передаются в метод. Эти идентификаторы не могут быть численно упорядочены.
Фро Пример
List<MyObject> get (List<Integer> ids) {
//get from db etc and do manipluation
//MyObject contains an id which corresponds to one of the ids passed in
//order the list according to the order of the ids parameter
}
идентификаторы могут содержать 1,2,3 в указанном порядке. Или 4,7,3,1,7 Это порядок, в котором идентификаторы были переданы в том порядке, в котором я хочу вернуть ВО.
Я мог бы украсить VO и добавить еще один параметр, чтобы некоторые естественный порядок, но это, кажется, много кода для чего-то довольно простого. Как я уже сказал в начале, я удивляюсь, что все эти годы не пришло к этому уже.
Любые идеи для красивого лаконичного шаблона для этого?
Благодаря
Поскольку вы получаете данные из БД, почему вы не сортируете его, когда вы извлекаете его из базы данных? –
хороший момент, я забыл, что могу сортировать с помощью пользовательского поля ids в поиске db. Будет ли проверять JPA здесь из интереса. Однако я все еще думаю, что могут возникнуть проблемы, когда я манипулирую VO. В идеале я бы хотел сделать это в конце манипуляции – RNJ
, если вы используете список. вы можете переопределить метод equals и hashcode, а затем list.sort. –