CacheId aci = new CacheId();
aci.setId(cacheObject.getId());
aci.setSequence(cacheObject.getSequence());
Cache persisted = em.find(Cache.class, aci);
if (persisted == null){
System.out.println("========== PERSISTING");
em.persist(cacheObject);
}else{
System.out.println("========== MERGING");
em.merge(cacheObject);
}
В то время как при запуске моего проекта другой экземпляр удаляет запись с текущим CacheId. Теперь мне нужно установить новое значение в базу данных с таким же идентификатором кеша. Но когда я делаю em.find(), это не возвращает null. (но в записи базы данных уже удалено.Таким образом, это приведет к слиянию слияния. И слияние завершилось неудачей с попыткой обновить 1, но обновлено 0 ...Персональный объект, прошедший для сохранения
Но если я прекратил проверку поиска и переадресации всегда, «Отдельный объект передан для сохранения». Как я могу обойти эту проблему?