Я удалил CascadeType ALL, и все работает, как мы ожидали, вот код
......................... CPROFILE
@Entity
public class CProfile {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key id;
private String phone;</p>
<pre><code> @OneToOne(mappedBy="profile")
private CUser User;
......................... CUSER
@Сущность
открытый класс CUser {
@Я бы
@GeneratedValue (стратегии = GenerationType.IDENTITY)
идентификатор закрытого ключа;
приватный String email;
@OneToMany(mappedBy="user")
private List<CPossibility> Possibilities = new ArrayList<CPossibility>();
@OneToOne
@JoinColumn(name="cprofile_id")
private CProfile profile;
......................... СОЗДАТЬ
...
CUser User = em.find (CUser.class, UserId_);
...
em.getTransaction () начинают ().
пытаться
{
Profile_.setUser (Пользователь);
User.setProfile (Profile _);
em.persist(Profile_);
em.getTransaction().commit();
}
catch(Exception e){GAEHelper.getLogger().warning("Exception:"+e.getMessage()+" "+e.getCause());}
finally {
if (em.getTransaction().isActive()) {
em.getTransaction().rollback();
}
}
em.close();
return true;
}
......................... ОБНОВЛЕНИЕ
...
CUser User = em.find (CUser.class, UserId_);
...
em.getTransaction () начинается ().
пытаться
{
em.remove (User.getProfile ());
Profile_.setUser(User);
User.setProfile(Profile_);
em.persist(Profile_);
em.getTransaction().commit();
}
Спасибо, ребята!
cscsaba