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 ... t-vs-merge
Ответить

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

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

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

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

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