【发布时间】: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