2016-07-12 35 views
0

我遇到以下問題: 我有一個由Primefaces創建的表。在這張表中,我展示了@OneToMany關係的元素。用戶點擊一個名稱,表格顯示該客戶的變更情況。這工作正常。但是 - 用戶應該從表中刪除單個元素。所以每個條目都有一個刪除按鈕。現在的問題: 如果我點擊一個按鈕數據庫中的條目被正確刪除,但我的表單更新總是顯示條目。所以我必須改變什麼?刪除實體關係後數據表未更新

<p:dataTable value="#{hauptBean.listeRisikotraeger.risikotraeger}" 
         var="tr" id="tab" styleClass="tabelle" 
         emptyMessage="Keine Risikoträger definiert" 
         rendered="#{not empty hauptBean.standardSelektion and(not empty hauptBean.listeRisikotraeger.risikotraeger and(!hauptBean.aenderung))}"> 
         <p:column headerText="Risikoträger"> 
          <h:outputText value="#{tr.name}" /> 
         </p:column> 
         <p:column width="70"> 
          <p:commandButton value="löschen" 
           actionListener="#{hauptBean.eintragLoeschen(tr)}" 
           update="@form" /> 
         </p:column> 
        </p:dataTable> 

,第一實體

@Entity 
public class Risikobereich implements Serializable { 

private static final long serialVersionUID = 1L; 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private int id; 
private String risikobereich; 

@OneToMany(fetch=FetchType.EAGER) 
@JoinColumn(name="ri_id", referencedColumnName="id")  
private List<Risikotraeger> risikotraeger; 

[GETTER/SETTER] 

與實體的關係:

@Entity 
public class Risikotraeger implements Serializable { 

private static final long serialVersionUID = 1L; 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private int id_risiko; 

private String name; 
private String abstraktesRisiko; 

[GETTER/SETTER] 

編輯

這是我的會話bean,它確實所有的東西在後臺:

@Override 
public boolean loeschen(Risikotraeger traeger) { 

    boolean erfolgreich = false; 

    em.remove(em.merge(traeger)); 

    erfolgreich = true; 

    return erfolgreich; 
} 

回答

0

你有沒有重新加載listeRisikotraeger分別去掉了記錄呢?

一個簡短的建議:爲什麼你更新你的@form之後按下刪除按鈕,而不是數據表直接?如果數據表旁邊有其他組件需要更新,我會建議在每個組件上定義一個ID並引用它們。所以你可以減少應該更新的頁面元素的範圍。例如:<p:datatable id=tableRisikotraeger .../> ... <p:commandButton value="löschen" update="tableRisikotraeger" .../>

+0

是的,我已經嘗試了同樣的方式......但仍然沒有工作。問題是,表格沒有刷新新的方式。 – user3515460

+0

你對「新方式」有何意義?你能告訴我你的'hauptBean'的範圍嗎? – chaeschuechli

+0

它具有SessionScope – user3515460