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;
}
是的,我已經嘗試了同樣的方式......但仍然沒有工作。問題是,表格沒有刷新新的方式。 – user3515460
你對「新方式」有何意義?你能告訴我你的'hauptBean'的範圍嗎? – chaeschuechli
它具有SessionScope – user3515460