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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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