Gibt es eine Möglichkeit, das abgetrennte Objekt an JPA persist zu übergeben? (Abgelöste Entität bleibt bestehen)

Ich habe 2 Entitäten:Account undAccountRole.

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

Problem kommt, wenn ich die accountRole von der Datenbank nehme und versuche, mein zu behaltenAccount. Zu diesem Zeitpunkt habe ich gerade meinen Account erstellt und die Rolle existiert bereits in db.

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

Ich lese das :JPA / Ruhezustand: Die getrennte Entität wurde übergeben, um fortzufahren Und was ich verstanden habe, muss ich die Entity-Werte aus beiden Richtungen einstellen, damit das, was ich in meinem Setter mache.

Immer noch Fehler.

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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage