Spring EntityManager сохраняется против слияния для ручного каскадирования отношений «один ко многим»JAVA

Программисты JAVA общаются здесь
Anonymous
Spring EntityManager сохраняется против слияния для ручного каскадирования отношений «один ко многим»

Сообщение Anonymous »

У меня есть объекты «Публикация» и «Комментарий», имеющие связь «один ко многим».

Код: Выделить всё

    @Entity
public class Post{
@Id
private Integer id;

@OneToMany(mappedBy  ="post")
private Set comments;
}
В классе Post я не определил Cascade, поскольку буду выполнять каскадирование «вручную» в классе обслуживания.
вот мой класс 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 ... -relations

Вернуться в «JAVA»