1
저는 JSF Newbie이고 datatable을 사용하여 데이터를 표시하는 데 문제가 있습니다.JSF Datatable이 OnetoMany 관계 개체의 값을 가져올 수 없습니까?
<h:dataTable id="dt_contract_list" value="#{customerBean.customer.contracts}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="Contract Identifier"/>
</f:facet>
<h:outputText style="" value="#{item.contractIdentifier}"></h:outputText>
</h:column>
</h:dataTable>
엔티티 빈 customerdetail.jsp :
@Entity
@NamedQueries({
@NamedQuery(name="getCustomerByName", query="SELECT customer FROM Customer customer WHERE customer.name = :name"),
@NamedQuery(name="getAllCustomer", query="SELECT customer FROM Customer customer")
})
public class Customer {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String name;
@OneToMany(targetEntity = Contract.class,
mappedBy = "customer",
cascade = CascadeType.ALL,
fetch=FetchType.EAGER)
private List<Contract> contracts = new ArrayList<Contract>();
public Customer() {
super();
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public List<Contract> getContracts() {
return this.contracts;
}
@Override
public boolean equals(Object object) {
if (this.getClass().isInstance(object)) {
return this.getName().equals(((Customer) object).getName());
} else {
return false;
}
}
}
Customer.java을 나는 고객
JSF 페이지의 데이터 테이블에 할당 된 계약 (들)을 표시 할
:이 내 시나리오입니다
BackingBean : CustomerBean.java
public class CustomerBean implements Serializable {
@EJB
private CustomerControllerLocal customerController;
private Customer customer;
public CustomerBean() {
customer = new Customer();
}
public String createCustomer() {
// create customer
}
public String updateCustomer() {
// update customer
}
public String deleteCustomer() {
// delete custoer
}
public String getCustomerByName() {
try {
customerController.getCustomerByName(customer.getName());
} catch (NotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "customer_got";
}
public String assignContractsToCustomer() {
// assign contract to customer
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
}
오류가없고 전체 비즈니스 로직 레이어, 데이터 레이어가 테스트되고 잘 작동하지만 결과가 null입니다 (그렇다고해서는 안됩니다!) 예외가 없습니다. 아무도 내가이 문제가 무엇인지 알아낼 수 있습니까? T___T