Когда я пытаюсь добавить данное изображение в один и тот же город назначения дважды, я получаю следующее исключение:
NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [org.wah.model.ImageEntity#7]
Это хорошо, так как мне не нужны дубликаты.Я пытаюсь предотвратить это в коде:
public void addImageToDestination(int idDestination, String imageFileName){
Destination destination = (Destination) getEntity(idDestination);
ImageEntityDAO imageDao = new ImageEntityDAO();
ImageEntity image = imageDao.getImage(imageFileName);
if(image == null)
image = new ImageEntity(imageFileName);
else if(destination.getImages().contains(image)){
return;
}
session.beginTransaction();
destination.getImages().add(image);
session.getTransaction().commit();
}
Конструкция else-if пытается определить, существует ли она, а затем ничего не делать и возвращать как есть.Однако условие else-if никогда не оценивается как TRUE, и выполняется код сеанса, что приводит к исключению NonUniqueObjectException.
Как я могу предотвратить это?