Existe uma maneira de passar o objeto desanexado para o JPA persist? (a entidade desanexada passou a persistir)

Eu tenho duas entidades:Account eAccountRole.

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

O problema vem quando eu pego o accountRole do banco de dados e tento persistirAccount. Neste ponto, acabei de criar minha conta e o papel já existe no banco de dados.

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

Eu li isso:JPA / Hibernate: entidade desanexada passada para persistir E o que eu entendi, devo definir os valores de entidades de ambas as direções, de modo que o que eu estou fazendo no meu setter.

Ainda recebendo erro.

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

questionAnswers(3)

yourAnswerToTheQuestion