2
전자 메일 및 데이터의 두 클래스가 있습니다. 그들 사이의 관계는 OneToMany입니다. 데이터의 데이터 테이블에 포함 된 전자 메일 목록을 표시하려고합니다. 내가 어떻게 할 수 있니? 내가 DataTable의 이메일 목록이 포함 된 열을 표시 할 때 빈 아무것도 표시되지 않습니다이다데이터 테이블에 onetomany 관계 표시
<p:dataTable value="#{dataMB.datas}" var="item" id="datas" rowsPerPageTemplate="5,10,15,20,25,30"
paginator="true" rows="10" filteredValue="#{dataMB.filteredDatas}"
selectionMode="single" rowKey="#{item.id}"
selection="#{dataMB.selectedData}">
<p:ajax event="rowSelect" update=":form:dataView , :form:confirmDelete"/>
<p:column sortBy="#{item.date}" filterBy="#{item.date}">
<f:facet name="header">
<p:outputLabel value="Creation"/>
</f:facet>
<p:outputLabel value="#{item.date}">
<f:convertDateTime pattern="MM/dd/yyyy HH:mm:ss" />
</p:outputLabel>
</p:column>
<p:column sortBy="#{item.grabduration}" filterBy="#{item.grabduration}">
<f:facet name="header">
<h:outputText value="Time of execution"/>
</f:facet>
<h:outputText value="#{item.grabduration}"/>
</p:column>
<p:column sortBy="#{item.keyword}" filterBy="#{item.keyword}">
<f:facet name="header">
<h:outputText value="Keyword"/>
</f:facet>
<h:outputText value="#{item.keyword}"/>
</p:column>
<p:column sortBy="#{item.number}" filterBy="#{item.number}">
<f:facet name="header">
<h:outputText value="Number"/>
</f:facet>
<h:outputText value="#{item.number}"/>
</p:column>
<p:column sortBy="#{item.emails}" filterBy="#{item.emails}">
<f:facet name="header">
<h:outputText value="Emails List"/>
</f:facet>
<h:outputText value="#{item.emails}"/>
</p:column>
</p:dataTable>
:
@Entity
@Table(name = "EMAILS")
public class Email implements Serializable {
@Id
@Column(name = "id")
private String id;
@Column(name = "extraction_Date")
@Temporal(TemporalType.TIMESTAMP)
private Date date;
@Size(max = 255)
@Column(name = "email")
private String email;
@ManyToOne(cascade = CascadeType.PERSIST)
private Data dataBase;
public Email() {
this.date = new Date();
this.id = IdGenerator.IdGenerathorCall();
}
@Entity
@Table(name = "DATAS")
public class Data implements Serializable {
@Id
@Column(name = "id")
private String id;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "creation")
private Date date;
@Column(name = "timeofextraction")
private float grabduration;
@Column(name = "keyword")
private String keyword;
@Column(name = "number")
private int number;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "dataBase", fetch = FetchType.EAGER)
private List<Email> emails;
public Data() {
super();
this.date = new Date();
this.id = IdGenerator.IdGenerathorCall();
}
내 페이지 dataList.xhtml는 다음과 같습니다 은이 나의 실체의 부분입니다.
primefaces 서브 테이블을 살펴보십시오. http://www.primefaces.org/showcase/ui/datatableSubTable.jsf – user1983983