当前位置: 首页 > 知识库问答 >
问题:

primefaces、eclipselink、insert之后的数据表不显示@JoinColumn

史昀
2023-03-14

数据表后,我插入,有一个空白字段,没有显示的实体,因为我不能张贴图像,这里是url

插入后

重新加载/刷新页面后,空字段将在刷新后恢复正常

这是我的实体

有人帮忙吗?这是我的方法保存

    public List<Ksrekening> create() {
    System.out.println("masuk create");
    HttpSession session;
    FacesContext context = FacesContext.getCurrentInstance();
    session = (HttpSession) context.getExternalContext().getSession(true);
    String servernamesku = (String) session.getAttribute("servernameuserdb");
    String username = (String) session.getAttribute("username");
    String ipaddress = (String) session.getAttribute("ipaddress");
    EntityManager emku = getEntityManager();
    Date ddate = new Date();
    try {
        EntityTransaction trx = em.getTransaction();
        trx.begin();
        Ksrekening simpanKsrekening = new Ksrekening();
        simpanKsrekening.setCDstatus(cdstatuscreate);
        simpanKsrekening.setCKodecur(getSelected().getMscurrency0().getCKodecur());
        simpanKsrekening.setCKodegl(getSelected().getGlaccms0().getCGlkode());
        simpanKsrekening.setCRekening(crekeningcreate);
        simpanKsrekening.setCStat(cstatcreate);
        simpanKsrekening.setCTipe(ctipecreate);
        simpanKsrekening.setDtUser01(ddate);
        simpanKsrekening.setDtUser02(ddate);
        simpanKsrekening.setNLimit(nlimitcreate);
        simpanKsrekening.setVcKeterangan(vcketerangancreate);
        simpanKsrekening.setVcStation01(ipaddress);
        simpanKsrekening.setVcStation02(ipaddress);
        simpanKsrekening.setVcUser01(username);
        simpanKsrekening.setVcUser02(username);
        em.persist(simpanKsrekening);
        trx.commit();
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Proses Insert", "Berhasil"));
        JsfUtil.addSuccessMessage(ResourceBundle.getBundle("/Bundle").getString("Master Rekening Berhasil di simpan !"));
        current = new Ksrekening();
        TypedQuery<Ksrekening> query =
                em.createNamedQuery("Ksrekening.findAll", Ksrekening.class);
        List<Ksrekening> results = query.getResultList();
        return results;

    } catch (Exception e) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Proses Insert", "Gagal"));
        JsfUtil.addErrorMessage(e, ResourceBundle.getBundle("/Bundle").getString("Master Rekening Gagal di simpan"));
        return null;
    }
}

方法检索表上的数据

public List<Ksrekening> getKsRekeningList() {

    TypedQuery<Ksrekening> query =
            em.createNamedQuery("Ksrekening.findAll", Ksrekening.class);
    List<Ksrekening> results = query.getResultList();
    return results;
}

public void setKsRekeningList(List<Ksrekening> ksRekeningList) {
    this.ksRekeningList = ksRekeningList;
}

这是我的数据表xhtml

  <h:form id="form">
                <p:dataTable id="ListKsRekening"
                             value="#{MasterRekening.ksRekeningList}"
                             rowKey="#{item.CRekening}"
                             selection="#{MasterRekening.selectedKsrekening}"
                             selectionMode="single"
                             rows="25"
                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                             paginator="true"
                             var="item" widgetVar="itemTable"
                             emptyMessage="Tidak Ada Rekening dengan Kriteria tersebut"
                             filteredValue="#{MasterRekening.filteredKsrekeningList}">
                    <f:facet name="header">
                        <p:outputPanel>
                            <h:outputText value="Search all fields:" />
                            <p:inputText id="globalFilter" onkeyup="itemTable.filter();" style="width:150px" />
                        </p:outputPanel>
                    </f:facet>

                    <p:column  id="kolomRekening" filterBy="#{item.CRekening}"
                               headerText="Rekening" footerText="Kode Rekening"
                               filterMatchMode="contains"  >
                        <h:outputText value="#{item.CRekening}"/>
                    </p:column>
                    <p:column  id="kolomKeterangan" filterBy="#{item.vcKeterangan}"
                               headerText="Keterangan" footerText="keterangan Rekening"
                               filterMatchMode="contains" >
                        <h:outputText value="#{item.vcKeterangan}"/>
                    </p:column>
                    <p:column  id="kolomCKodegl" filterBy="#{item.CKodegl}"
                               headerText="Kode Gl" footerText="Kode GL"
                               filterMatchMode="contains" >
                        <h:outputText value="#{item.CKodegl}"/>
                    </p:column>
                    <p:column  id="kolomketeranganckodegl" filterBy="#{item.glaccms0.vcGlket}"
                               headerText="Keterangan Gl" footerText="Keterangan GL"
                               filterMatchMode="contains" >
                        <h:outputText value="#{item.glaccms0.vcGlket}"/>
                    </p:column>
                    <p:column  id="kolomtipe" filterBy="#{item.CTipe}"
                               headerText="Tipe" footerText="Tipe"
                               filterMatchMode="contains" >
                        <h:outputText value="#{item.CTipeTampil}"/>
                    </p:column>
                    <p:column  id="kolomcurrency" filterBy="#{item.CKodecur}"
                               headerText="Currency" footerText="Kode Currency"
                               filterMatchMode="contains" >
                        <h:outputText value="#{item.CKodecur}"/>
                    </p:column>
                    <p:column  id="kolomlimit" filterBy="#{item.NLimit}"
                               headerText="Limit" footerText="Limit"
                               filterMatchMode="contains" >
                        <h:outputText value="#{item.NLimit}"/>
                    </p:column>
                    <p:column  id="kolomstatus" filterBy="#{item.CStat}"
                               headerText="Status" footerText="Status"
                               filterMatchMode="contains" >
                        <h:outputText value="#{item.CStatTampil}"/>
                    </p:column>
                    <p:column  id="kolomjurnal" filterBy="#{item.CDstatusTampil}"
                               headerText="Masuk jurnal" footerText="Jurnal"
                               filterMatchMode="contains" >
                        <h:outputText value="#{item.CDstatusTampil}"/>
                    </p:column>
                    <f:facet name="footer">
                        <p:commandButton id="viewButtons" value="Edit" icon="ui-icon-pencil"
                                         update=":displayedit :form:ListKsRekening" oncomplete="carDialogedit.show()"
                                         action="#{MasterRekening.parsing(MasterRekening.selectedKsrekening)}" />
                        <p:commandButton id="deleteButtons" value="Delete" icon="ui-icon-trash"
                                         update=":displaysdelete :form:ListKsRekening" oncomplete="carDialogsdelete.show()"
                                         action="#{MasterRekening.parsing(MasterRekening.selectedKsrekening)}" />
                        <p:commandButton id="viewButton" value="View" icon="ui-icon-search"
                                         update=":displayview" oncomplete="carDialogview.show()"/>
                        <p:commandButton id="createButtons" value="Create" icon="ui-icon-disk"
                                         update=":displaycreate :form:ListKsRekening" oncomplete="carDialogscreate.show()"/>
                    </f:facet>
                </p:dataTable>
            </h:form>
<h:panelGrid id="displaycreate" >
                <p:dialog id="dialogscreate" header="Create Rekening" widgetVar="carDialogscreate" resizable="true"
                          showEffect="clip" hideEffect="fold" >
                    <h:form id="dlgFormcreate">
                        <table>
                            <tr>
                                <td><h:outputLabel value="Kode Rekening" for="CRekening" /></td>
                                <td>: <h:inputText id="CRekening" value="#{MasterRekening.crekeningcreate}" /></td>
                            </tr>
                            <tr>
                                <td><h:outputLabel value="Keterangan" for="vcKeterangan" /></td>
                                <td>: <h:inputText id="vcKeterangan" value="#{MasterRekening.vcketerangancreate}" /></td>
                            </tr>
                            <tr>
                                <td><h:outputLabel value="Limit" for="NLimit" /></td>
                                <td>: <h:inputText value="#{MasterRekening.nlimitcreate}" id="NLimit" /></td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Kode Currency :"  /></td>
                                <td>:
                                    <p:selectOneMenu  value="#{MasterRekening.current.mscurrency0}"  panelStyle="width:350px" converter="#{converterMScurrency}"
                                                      effect="fade" var="kdcura" style="width:160px"  filter="true"
                                                      filterMatchMode="startsWith" >
                                        <f:selectItems  value="#{MasterRekening.mscurrency0List}" var="kdcur"
                                                        itemLabel="#{kdcur.vcKetcur}" itemValue="#{kdcur}"/>
                                        <p:column>
                                            #{kdcura.CKodecur} - #{kdcura.vcKetcur}
                                        </p:column>
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Kode GL"  /></td>
                                <td>:
                                    <p:selectOneMenu   value="#{MasterRekening.current.glaccms0}" panelStyle="width:350px" converter="#{converterGlaccms0}"
                                                       effect="fade" var="p" style="width:160px"  filter="true" filterMatchMode="startsWith"
                                                       >
                                        <f:selectItems  value="#{MasterRekening.glaccms0List}" var="player"
                                                        itemLabel="#{player.vcGlket}" itemValue="#{player}"/>
                                        <p:column>
                                            #{p.CGlkode} - #{p.vcGlket}
                                        </p:column>
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Tipe " /></td>
                                <td>:
                                    <p:selectOneMenu value="#{MasterRekening.ctipecreate}">
                                        <f:selectItem itemLabel="Kas" itemValue="1" />
                                        <f:selectItem itemLabel="Bank" itemValue="2" />
                                        <f:selectItem itemLabel="Credit" itemValue="3" />
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Status  " /></td>
                                <td>:
                                    <p:selectOneMenu value="#{MasterRekening.cstatcreate}" id="CStat" >
                                        <f:selectItem itemLabel="Aktif" itemValue="A" />
                                        <f:selectItem itemLabel="Tidak Aktif" itemValue="D" />
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Masuk Jurnal  " /></td>
                                <td>:
                                    <p:selectOneMenu value="#{MasterRekening.cdstatuscreate}" >
                                        <f:selectItem itemLabel="Ya" itemValue="*******J**"  />
                                        <f:selectItem itemLabel="Tidak" itemValue="**********" />
                                        <f:selectItem itemLabel="Hanya Saldo" itemValue="********R*" />
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <p:commandButton value="Create" oncomplete="carDialogscreate.hide()"  update=":form:ListKsRekening"
                                                     actionListener ="#{MasterRekening.create()}" ajax="true" process="@all" id="create"  >

                                    </p:commandButton>
                                </td>
                            </tr>
                        </table>
                    </h:form>
                </p:dialog>
            </h:panelGrid>
 <h:panelGrid id="displayedit" columns="2" cellpadding="4">
                <p:dialog id="dialogedit" header="Edit Rekening" widgetVar="carDialogedit" resizable="true"
                          showEffect="clip" hideEffect="fold" >
                    <h:form id="dlgFormedit">
                        <table>
                            <tr>
                                <td><h:outputLabel value="Kode Rekening" for="CRekening" /></td>
                                <td>: <h:inputText id="CRekening" value="#{MasterRekening.crekeningedit}" /></td>
                            </tr>
                            <tr>
                                <td><h:outputLabel value="Keterangan" for="vcKeterangan" /></td>
                                <td>: <h:inputText id="vcKeterangan" value="#{MasterRekening.vcketeranganedit}" /></td>
                            </tr>
                            <tr>
                                <td><h:outputLabel value="Limit" for="NLimit" /></td>
                                <td>: <h:inputText value="#{MasterRekening.nlimitedit}" id="NLimit" /></td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Kode Currency :"  /></td>
                                <td>:
                                    <p:selectOneMenu  value="#{MasterRekening.selected.mscurrency0}"  panelStyle="width:350px" converter="#{converterMScurrency}"
                                                      effect="fade" var="kdcura" style="width:160px"  filter="true"
                                                      filterMatchMode="startsWith" >
                                        <f:selectItems  value="#{MasterRekening.mscurrency0List}" var="kdcur"
                                                        itemLabel="#{kdcur.vcKetcur}" itemValue="#{kdcur}"/>
                                        <p:column>
                                            #{kdcura.CKodecur} - #{kdcura.vcKetcur}
                                        </p:column>
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Kode GL :"  /></td>
                                <td>:
                                    <p:selectOneMenu   value="#{MasterRekening.selected.glaccms0}" panelStyle="width:350px" converter="#{converterGlaccms0}"
                                                       effect="fade" var="p" style="width:160px"  filter="true" filterMatchMode="startsWith"
                                                       >
                                        <f:selectItems  value="#{MasterRekening.glaccms0List}" var="player"
                                                        itemLabel="#{player.vcGlket}" itemValue="#{player}"/>
                                        <p:column>
                                            #{p.CGlkode} - #{p.vcGlket}
                                        </p:column>
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Tipe : " /></td>
                                <td>:
                                    <p:selectOneMenu value="#{MasterRekening.ctipeedit}">
                                        <f:selectItem itemLabel="Kas" itemValue="1" />
                                        <f:selectItem itemLabel="Bank" itemValue="2" />
                                        <f:selectItem itemLabel="Credit" itemValue="3" />
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Status : " /></td>
                                <td>:
                                    <p:selectOneMenu value="#{MasterRekening.cstatedit}" id="CStat" >
                                        <f:selectItem itemLabel="Aktif" itemValue="A" />
                                        <f:selectItem itemLabel="Tidak Aktif" itemValue="D" />
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td><h:outputText value="Masuk Jurnal : " /></td>
                                <td>:
                                    <p:selectOneMenu value="#{MasterRekening.cdstatusedit}" >
                                        <f:selectItem itemLabel="Ya" itemValue="*******J**"  />
                                        <f:selectItem itemLabel="Tidak" itemValue="**********" />
                                        <f:selectItem itemLabel="Hanya Saldo" itemValue="********R*" />
                                    </p:selectOneMenu>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <p:commandButton value="Edit" oncomplete="carDialogedit.hide()"  update=":form:ListKsRekening"
                                                     actionListener ="#{MasterRekening.update()}" id="update"  >
                                    </p:commandButton>
                                </td>
                            </tr>
                        </table>
                    </h:form>
                </p:dialog>
            </h:panelGrid>
 <p:selectOneMenu   value="#{MasterRekening.current.glaccms0}" panelStyle="width:350px" converter="#{converterGlaccms0}"
                                                       effect="fade" var="p" style="width:160px"  filter="true" filterMatchMode="startsWith"
                                                       >
                                        <f:selectItems  value="#{MasterRekening.glaccms0List}" var="player"
                                                        itemLabel="#{player.vcGlket}" itemValue="#{player}"/>
                                        <p:column>
                                            #{p.CGlkode} - #{p.vcGlket}
                                        </p:column>
                                    </p:selectOneMenu>
 @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "c_kodegl", referencedColumnName = "c_glkode", insertable = false, updatable = false)
private Glaccms0 glaccms0;

还有这里

public List<Ksrekening> getKsRekeningList() {

    TypedQuery<Ksrekening> query =
            em.createNamedQuery("Ksrekening.findAll", Ksrekening.class);
    List<Ksrekening> results = query.getResultList();
    return results;
}

public void setKsRekeningList(List<Ksrekening> ksRekeningList) {
    this.ksRekeningList = ksRekeningList;
}

加上

                    <p:column  id="kolomketeranganckodegl" filterBy="#{item.glaccms0.vcGlket}"
                               headerText="Keterangan Gl" footerText="Keterangan GL"
                               filterMatchMode="contains" >
                        <h:outputText value="#{item.glaccms0.vcGlket}"/>
                    </p:column>

共有1个答案

袁泰平
2023-03-14

还是很难读懂。我所能确定的是item.glaccms0.vcglket值为空。这表明引用的glaccms0实体与数据库中的实体不同步。需要更多关于如何阅读这个实例的信息,但我猜您已经创建了一个实例,部分填充了它,并将它关联到新的ksrekening。这些都是java对象--它不会从数据库中获取或反映数据,除非您已经从那里读取了数据。由于glaccms0关系是只读的,所以我不确定您是否已经在所展示的代码中设置了它,并且可能是通过其他方式直接填充外键,可能是通过基本映射。

如果没有将关系正确设置为从EntityManager读取的对象,则以后必须依赖refresh来修复关系。

 类似资料:
  • 我正在尝试一个使用JPA和JSF-primeface的网络项目。我有一个错误,插入/更新一个具有@ManyToOne关系的对象。 插入后,@JoinColumn为空字段。(抱歉,我无法发布图片,这里是图片链接) 插入后 然后,在重新加载列表后,空白字段恢复正常 重新加载后 我使用单向@ManyToOne实体 位置JAVA 阿肯。JAVA 方法更新到数据库 方法检索表上的数据 我使用的是JavaEE

  • 问题内容: 我正在尝试在数据表中显示Hashmap,这是我要尝试的操作:我将具有一些产品的选择菜单,以及数量的输入文本,还有一个“ ajaxified”添加按钮,用于添加产品和它的数量到地图上,以及一个提交按钮,显示一个摘要对话框,其中包含一个包含两列的数据表:产品名称和数量。我的哈希图是 对于Ajaxified按钮和所有这些第一步,它们正在为我工​​作,我已设置了所有内容,并且正确填充了地图,剩

  • 我有一个p:dataTable,它存储已处理表单的结果,我执行以下操作: 填充表单值。 提交。 已填充数据表--对任何列进行筛选。 更改表单值。 提交。 使用新结果填充数据表。 对任意列排序--将显示来自#3的筛选结果。 我有一个用于筛选值的arraylist,但我没有在bean中对它做任何操作。提交时,我调用actionListener,该actionListener将dataTable强制转换

  • 我试图通过从展示中获取代码来使primeface元素出现在我的页面上,菜单在一些修改后运行良好,但selectonemenu拒绝出现。 它在布局单元中没有显示任何内容。这是我的xhtml代码:

  • 问题内容: 这是我的模型: User.java 我想建立一个这样的用户朋友表: users.jsf 由于用户很多,因此无法一次性转储用户表。 在这种情况下,数据表组件是理想的,因为它具有内置的分页支持。也是理想的,因为可以对列进行排序… 不幸的是,我无法通过Primefaces示例找到改变用户列行距的方法。 如何建立该数据表? 问题答案: 基于@Kerem的答案,这是我想出的解决方案: 为了使嵌套

  • 嗨,我是primefaces的新手,我对数据表中显示的值有一些问题。我从sql数据库加载数据,并在dataTable中显示这些数据。有一个柱子叫做“评论”,里面有一个按钮。如果你点击这个按钮,就会打开一个对话框。在这个对话框框架内,也应该有一些与我在dataTable中显示的相同的值,但它不起作用。我无法显示该对话框框中的值。我在谷歌上搜索了很多次,也尝试了很多次,但都无济于事。下面是xhtml: