Будет полезно, если вы сможете опубликовать свой код.Но я предполагаю, что вы можете столкнуться с известной разницей в поведении между DataNucleus и другими ORM, такими как Hibernate.
Вы делаете что-то вроде этого?выполняется механизмом привязки данных, таким как Spring MVC).Если вы сделаете это следующим образом, не будет работать с DataNucleus, но будет работать с Hibernate.Для DataNucleus вы должны вместо этого сделать:
MyEntity ent = entityManager.find(MyEntity.class, idFromWebRequest);
ent.setXXX(valueFromWebRequest);
ent = entityManager.merge(ent);
Я бы предпочел, чтобы он работал как Hibernate, но команда DataNucleus считает, что это правильное поведение.Может быть, они могут вмешаться. Я полагаю, что это вопрос, когда вы рассматриваете сущность как новую сущность против отдельной сущности.Если экземпляр вашей сущности отсоединен, то при вызове слияния он должен быть присоединен повторно, и ваша строка базы данных будет обновлена при фиксации / сбросе транзакции.Если это новый экземпляр, то менеджер сущностей всегда будет создавать новую запись.
Что касается вашей проблемы удаления, я не знаю, что это может быть.Возможно, вы можете опубликовать пример кода?Вы можете найти полный пример приложения CRUD с помощью провайдера JPA здесь:
https://github.com/forcedotcom/javasample-musiclib