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