Вот фрагмент кода:
Код: Выделить всё
@Entity
public class Transaction {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne(cascade = {CascadeType.ALL},fetch= FetchType.EAGER)
private Account fromAccount;
....
@Entity
public class Account {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(cascade = {CascadeType.ALL},fetch= FetchType.EAGER, mappedBy = "fromAccount")
private Set transactions;
Вызвано: org.hibernate.PersistentObjectException: отдельный объект передан для сохранения: com.paulsanwald.Account
в org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener) .java:141)
Итак, я могу сохранить учетную запись, которая содержит транзакции, но не транзакцию, которая имеет учетную запись. Я думал, это потому, что учетная запись может быть не прикреплена, но этот код все равно дает мне то же исключение:
Код: Выделить всё
if (account.getId()!=null) {
account = entityManager.merge(account);
}
Transaction transaction = new Transaction(account,"other stuff");
// the below fails with a "detached entity" message. why?
entityManager.persist(transaction);
Подробнее здесь: https://stackoverflow.com/questions/133 ... -jpa-and-h
Мобильная версия