EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
Itemstat persistentItemstat = em.find(Itemstat.class, itemstat.getItemstatPK());
Item itemOld = persistentItemstat.getItem();
Item itemNew = itemstat.getItem();
if (itemNew != null) {
itemNew = em.getReference(itemNew.getClass(), itemNew.getId());
itemstat.setItem(itemNew);
}
itemstat = em.merge(itemstat);
if (itemOld != null && !itemOld.equals(itemNew)) {
itemOld.getItemstatCollection().remove(itemstat);
itemOld = em.merge(itemOld);
}
if (itemNew != null && !itemNew.equals(itemOld)) {
itemNew.getItemstatCollection().add(itemstat);
itemNew = em.merge(itemNew);
}
em.getTransaction().commit();
} catch (Exception ex) {
String msg = ex.getLocalizedMessage();