Bonjour,
J'ai une page qui contient une list d'article et je n'arrive pas à supprimer un des articles. L'erreur qui m'est envoyé est la suivante :
Code:
6:54:53,390 INFO [STDOUT] Hibernate: update T_ARTICLE set ARTICLE_TEXT=?, ARTICLE_PLACEMENT=?, ARTICLE_HAUTEUR=?, ARTICLE_LONGUEUR=?, ARTICLE_TITRE=? where ARTICLE_ID=?
16:54:53,484 INFO [STDOUT] Hibernate: update T_ARTICLE set PAGE_ID=null, ARTICLE_ID=null where PAGE_ID=? and ARTICLE_ID=?
16:54:53,484 INFO [STDOUT] Hibernate: update T_ARTICLE set PAGE_ID=null, ARTICLE_ID=null where PAGE_ID=? and ARTICLE_ID=?
16:54:53,484 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
16:54:53,484 ERROR [JDBCExceptionReporter] L'élément du batch 0 update T_ARTICLE set PAGE_ID=null, ARTICLE_ID=null where PAGE_ID=0 and ARTICLE_ID=6 a été annulé. Appeler getNextException pour en connaître la cause.
16:54:53,484 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: 23502
16:54:53,484 ERROR [JDBCExceptionReporter] ERROR: null value in column "article_id" violates not-null constraint
16:54:53,484 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
Ce que je fais exactement lors de ma suppression :
Code:
public void deleteArticle(int idPage,int idArticle) {
Context ctx;
try {
ctx = new InitialContext();
HibernateManagerLocalHome managerLocalHome = (HibernateManagerLocalHome) ctx.lookup("HibernateManagerLocal");
HibernateManagerLocal managerLocal = managerLocalHome.create();
Article article = (Article)managerLocal.get(Article.class,idArticle);
Page page = (Page)managerLocal.get(Page.class,idPage);
page.getArticles().remove(article);
managerLocal.update(page);
}catch (Exception e) {
e.printStackTrace();
}
}
Mon mapping :
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.aetys.easyportal.easyWeb3.site.modele.Page" table="T_PAGE">
<id name="id" column="PAGE_ID">
<generator class="sequence">
<param name="sequence">page_sequence</param>
</generator></id>
<property column="PAGE_TITRE" name="titre" type="string"></property>
<property column="PAGE_PLACEMENT" name="placement" type="int"></property>
<property column="PAGE_TEMPLATE" name="template" type="string"></property>
<list name="articles" lazy="false" table="T_ARTICLE" cascade="all-delete-orphan" >
<key column="PAGE_ID"/>
<list-index column="ARTICLE_ID"/>
<one-to-many class="com.aetys.easyportal.easyWeb3.site.modele.Article" />
</list>
<list name="sousPages" lazy="false" table="T_PAGE" cascade="all-delete-orphan" >
<key column="PAGE_MERE"/>
<list-index column="PAGE_ID"/>
<one-to-many class="com.aetys.easyportal.easyWeb3.site.modele.Page" />
</list>
</class>
</hibernate-mapping>