Est-il un moyen de passer détaché de l'objet à JPA persistent? (détaché de l'entité passée à persister)

J'ai 2 entités : Account et AccountRole.

public class Account {
   private AccountRole accountRole;

   @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
   public AccountRole getAccountRole() {
      return accountRole;
   }

.

public class AccountRole {
    private Collection<Account> accounts = new ArrayList<Account>();

    @OneToMany(mappedBy = "accountRole", fetch = FetchType.EAGER)
    public Collection<Account> getAccounts() {
         return accounts;
    }

Problème vient lorsque je prends la accountRole à partir de la base de données et essayez de conserver mon Account. À ce point, je viens de créer mon compte et le rôle existe déjà dans la base de données.

AccountRole role = accountService.getRoleFromDatabase(AccountRoles.ROLE_USER);
account.setAccountRole(role);

//setting both ways, as suggested
public void setAccountRole(AccountRole accountRole) {
    accountRole.addAccount(this);
    this.accountRole = accountRole;
}

entityManager.persist(account); //finally in my DAO

J'ai lu ceci : JPA/Hibernate: détaché entité passé à persister Et ce que j'ai compris, je dois définir les entités valeurs des deux sens, de sorte que ce que je fais dans mon setter.

Encore avoir d'erreur.

 org.hibernate.PersistentObjectException: detached entity passed to persist: foo.bar.pojo.AccountRole

OriginalL'auteur Jaanus | 2012-12-12