【问题标题】:add data to many to many relationship JPA将数据添加到多对多关系 JPA
【发布时间】:2016-04-16 21:08:41
【问题描述】:

我用一个额外的表(REFEREEFOUL)创建了多对多关系,该表具有表犯规和裁判这两个主键。我可以将数据添加到两个表中,但额外的表没有值。我怎么能说犯规表中的记录与另一个表中的裁判有关?

裁判班关系:

@ManyToMany(mappedBy = "refereeList", fetch = FetchType.EAGER)
private List<Foul> foulList;

犯规级别的关系:

@JoinTable(name = "REFEREEFOUL", joinColumns = {
        @JoinColumn(name = "FOULID", referencedColumnName = "ID")}, inverseJoinColumns = {
        @JoinColumn(name = "REFEREEID", referencedColumnName = "ID")})
    @ManyToMany(fetch = FetchType.EAGER)
    private List<Referee> refereeList;

关系是正确的,我使用 PersistAction.Create 来创建新的犯规和裁判。但问题是我无法链接它们

  <h:panelGroup id="display">
                    <p:panelGrid columns="2" rendered="#{refereeController.selected != null}">
                        <p:outputLabel value="id" for="id" />
                        <p:inputText id="id" value="#{refereeController.selected.id}"  />
                        <p:outputLabel refereename" for="refereename" />
                        <p:inputText id="refereename" value="#{refereeController.selected.refereename}" title="#{bundle.CreateRefereeTitle_refereename}" />
                        <p:outputLabel value="refereeposition" for="refereeposition" />
                        <p:inputText id="refereeposition" value="#{refereeController.selected.refereeposition}"  />
                        <p:outputLabel value="gameid" for="gameid" />
                        <p:selectOneMenu id="gameid" value="#{refereeController.selected.gameid}" >
                            <f:selectItems value="#{gameController.itemsAvailableSelectOne}"
                                           var="gameidItem"
                                           itemValue="#{gameidItem}"/>
                        </p:selectOneMenu>
                    </p:panelGrid>
                    <p:commandButton actionListener="#{refereeController.create}" value="#{bundle.Save}" update="display,:RefereeListForm:datalist,:growl" oncomplete="handleSubmit(args,'RefereeCreateDialog');"/>

                </h:panelGroup>

【问题讨论】:

  • 所以你不发布你是如何向每一侧添加数据的,持久化在哪里?嗯。我不知道某些 JSF 与 JPA 实体有什么关系。 ENTITY 对象是 JPA 唯一关心的东西
  • 您的问题确实令人困惑。 JSF 是一个基于 HTML 表单的 MVC 框架,能够使用 HTTP 请求并生成 HTML 输出。 JSF 与 JPA 完全无关。基本上,JSF 能为您做的就是将提交的 HTML 表单输入值设置为 bean 属性。仅此而已。无论您对这些模型值做什么,都超出了 JSF 的责任范围。你不是很清楚你的问题到底出在哪里。请在 JSF 设置模型值之后以及在您坚持使用 JPA 之前检查模型值。如果他们都很好,那么请从问题中删除 JSF。

标签: mysql jsf jpa jsf-2 many-to-many


【解决方案1】:

如果有影响,现在无法检查是否正确,但我不禁想尝试将 cascade = CascadeType.PERSIST(或 CascadeType.ALL)添加到联接中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 2018-04-04
    相关资源
    最近更新 更多