JPA - persist i relacja ManyToOne

0

Mam takie dwie klasy:

 
@Entity
class Post {
@Id
@GeneratedValue
private long id;
@ManyToOne
@JoinColumn(name = "authorId")
private Author author;
}
@Entity
class Author {
@Id
@GeneratedValue
private long id;
@OneToMany(mappedBy = "author")
private List<Post> posts;
}

W jaki sposób mogę dodać nowy obiekt klasy Post do bazy danych bez tworzenia nowego autora? Teraz muszę używać Cascade Persist, żeby nie było błędu "detached entity passed to persist", więc nawet jeśli id autora już istnieje w bazie danych to tworzony jest nowu z id generowanym automatycznie.

0

Nie za bardzo rozumiem w czym możesz mieć problem. Tworzysz obiekt Post, ustawiasz autora, i zapisujesz. W momencie zapisu, JPA (zazwyczaj Hibernate) weźmie sobie id autora i zostanie zapisany w bazie. Tyle.

1 użytkowników online, w tym zalogowanych: 0, gości: 1