2014-12-03 2 views
-1

두 개의 엔터티가 함께 조인되고 명명 된 쿼리가 실행됩니다. 내 JSF 페이지에 표시하려고 할 때 데이터를 볼 수 없습니다. 그러나 디버그에서 엔터티를 볼 수 있으며 데이터가 있습니다.JSF OneToMany 엔터티 표시

JSF 페이지

<ui:repeat id="headerList" var="header" value="#{tModel.tHeader}"> 
    <tr> 
     <td>#{header.rbid}</td> 
     <td>#{header.uploadTimestamp}</td> 
     <td> 
      <ui:repeat id="authList" var="auth" value="#{header.auth}"> 
       #{auth.username} 
      </ui:repeat>  
     </td> 
    </tr> 
</ui:repeat> 

모델

public Collection<THeader> getTHeader() { 
    return tHeader; 
} 

public void init() { 
    tHeader = getEntityManager().createNamedQuery("THeader.findByUsername").setParameter("username", userBeanRef.get().getUserName()).getResultList(); 
} 

헤더 엔티티

@Entity 
@Table(name = "theader") 
@NamedQueries({ 
@NamedQuery(name="THeader.findByUsername", 
     query="SELECT h, a FROM THeader h INNER JOIN h.auth a WHERE a.username = :username") 
}) 

public class THeader { 

private static final long serialVersionUID = -5906810279679409035L; 

@Column(name = "rbid") 
private String rbid; 

@JoinColumn(name = "header_id") 
@OneToMany 
private List<TAuth> auth; 

@Column(name = "upload_timestamp") 
@Temporal(TemporalType.TIMESTAMP) 
private Date upload_timestamp; 

public String getRbid() { 
    return rbid; 
} 

public void setRbid(String rbid) { 
    this.rbid = rbid; 
} 

public List<TAuth> getAuth() { 
    return auth; 
} 

public void setAuth(List<TAuth> auth) { 
    this.auth = auth; 
} 

public Date getUploadTimestamp() { 
    return upload_timestamp; 
} 

public void setUploadTimestamp(Date upload_timestamp) { 
    this.upload_timestamp = upload_timestamp; 
} 

} 

인증 엔티티

@Entity 
@Table(name = "tauth") 
public class TAuth { 

private static final long serialVersionUID = -5906752349589409035L; 

@Column(name = "username") 
private String username; 

@Column(name = "header_id") 
private int header_id; 

public int getHeader_id() { 
    return header_id; 
} 

public void setHeader_id(int header_id) { 
    this.header_id = header_id; 
} 

public String getUsername() { 
    return username; 
} 

public void setUsername(String username) { 
    this.username = username; 
} 

} 

답변

0

UI에 문제가 있습니다. Repeat var = "header"를 사용하고있었습니다. var = "hdr"과 같은 다른 이름을 사용하면 문제가 해결되었습니다.