删除实体关系后未更新数据表



我有以下问题:我有一个由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;
}

您是否分别重新加载listeRisikotraeger删除了其中的记录?

一个简短的建议:为什么要在按下删除按钮而不是直接按数据表后更新@form?如果数据表旁边还有其他组件要更新,我建议在每个组件上定义一个 ID 并引用它们。因此,您可以缩小应更新的页面元素的范围。例如:<p:datatable id=tableRisikotraeger .../>... <p:commandButton value="löschen" update="tableRisikotraeger" .../>

相关内容

  • 没有找到相关文章

最新更新