JPA / Hibernate: entidad separada pasada para persistir

Tengo un modelo de objeto persistente JPA que contiene una relación de varios a uno: una Cuenta tiene muchas Transacciones. Una Transacción tiene una Cuenta.

Aquí hay un fragmento del código:

@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<Transaction> transactions;

Puedo crear un objeto de cuenta, agregarle transacciones y mantener el objeto de cuenta correctamente. Pero, cuando creo una transacción,usando una cuenta ya persistida, y persistiendo lala transacción, Me sale una excepción:

Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: com.paulsanwald.Account
    at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:141) 

Por lo tanto, puedo conservar una Cuenta que contiene transacciones, pero no una Transacción que tenga una Cuenta. Pensé que esto era porque la Cuenta podría no estar adjunta, pero este código todavía me da la misma excepción:

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);

¿Cómo puedo guardar correctamente una transacción, asociada con un objeto de cuenta ya persistido?

Respuestas a la pregunta(13)

Su respuesta a la pregunta