Zdravím konference
Mám problém s ukládáním detached objektů do db.
Používám JPA(Hibernate), Spring 2.5
code:
-------------------------------
Page page = pageService.find(2);
Article article = new Article();
article.getPages().add(page);
articleService.save(article);
-----------------------------
Vyhodí to PersistentObjectException.detached entity passed to
persist:Page
Pokud použiji přímo entityManagera, vše funguje bez problémů:
*code:
---------------------------------------
em.getTransaction().begin();
Page page = em.find(Page.class,2);
Article article = new Article();
article.getPages().add(page);
em.persist(a);
em.getTransaction().commit();
------------------------------------
DAOservice rozšiřuje abstraktní DAOservice
*code:AbstractComponentService.java
-----------------------------------
@Transactional
public abstract class AbstractComponentService {
protected EntityManager entityManager;
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this. entityManager = entityManager;
}
protected void save(Component component) {
if (component.getId() == null) {
//new
entityManager.persist(component );
} else {
// update
merge(component);
}
}
...
----------------------------------------------
*code: ArticleService.java
---------------------------------------------------------------
public class ArticleServiceImpl extends AbstractComponentService
implements ArticleService{
@Override
public void save(Article article)
{ ;
super.save(article);
}
-----------------------------------------------------
Object Page a Article je v asociaci ManyToMany.
Děkuji za pomoc.
Tomáš Jurman