Код: Выделить всё
@Entity
public class Post{
@Id
private Integer id;
@OneToMany(mappedBy ="post")
private Set comments;
}
вот мой класс dao
Код: Выделить всё
public class PostDao{
@PersistenceContext
protected EntityManager entityManager;
public Post save(Post post){
if(post.getId() == null){
entityManager.persist(post);
return post;
}else {
return entityManager.merge(post);
}
}
Код: Выделить всё
public class PostService{
private PostDao postDao;
public Post savePost(Post post){
Post managedPost = postDao.save(post);
}
}
- что здесь возвращает метод persist? тот же объект с добавленным полем id или совершенно новый объект?
- поскольку я не использую каскадирование, будет ли метод слияния получать комментарии из базы данных? будет ли какой-либо конфликт, если существует разница между набором комментариев от управляемых и отдельных объектов.
- в основном то, что я хочу, это сначала сохранить/объединить сообщение, затем получить комментарии и сохранить/объединить их. что-то вроде этого
public Post savePost(Post post){
Post ManagedPost = postDao.save(post);
//получить комментарий, я не знаю, какой использовать post или ManagedPost
Set comment = post/managedPost.getComments();
//зациклировать каждый комментарий и сохранить его
Подробнее здесь: https://stackoverflow.com/questions/797 ... t-vs-merge