Я в настоящее время Java Entities
: Cat
и Kitten
Перемещение логики Java Comparator из сущности?
Ниже сущность Кошка, которая содержит текущую comparator
логику для упорядочивания объектов Cat, по которым кошка имеет самый старый Котик я больше не
public class Cat implements Comparable<Cat>
{
//other fields and methods
@OneToMany(mappedBy = "cat",fetch = FetchType.EAGER)
private List<Kitten> kittenList= new ArrayList<Kitten>();
public DateTime getOldestBornValueForKittenInList(){
return kittenList.stream().min(Comparator.comparing(Kitten::getBorn))
.get().getBorn();
}
public int compareTo(Cat c) {
//fist compare on the oldest Created DateTime Value
int i = getOldestBornValueForKittenInList().compareTo(c.getOldestBornValueForKittenInList());
if (i != 0){
return i;
}
}
}
хочу, чтобы моя сущность Cat реализовала интерфейс comparable
. Могу ли я вызвать компаратор в моем приложении?
I.e. если бы я хотел в ordered Map
кошках и их список котят, с кошкой с самым старым котенком является первой записью в карте:
Map<Cat, List<Kitten>> mapOfCatsAndKittens = new HashMap<Cat, List<Kitten>>();
в общем, имея логику в классе сущностей является плохой практикой, есть сервис с объектом autowired применять логику –
Почему не 'TreeMap'? Он предназначен для «компаратора». – Tirath
@RoelStrolenberg вы можете привести пример сервиса, который я мог бы заменить логикой сущности? – java123999