私の目標は、選択した会社ごとのすべての従業員のリストを取得することです。 あなたが質問の最後に、JSPファイルで見ることができるように、私はエラーを取得する:java jsp選択したアイテムごとにリストを取得
{IndirectList: not instantiated}
あなたが選択した会社ごとに全従業員のリストを取得するために私を助けてくださいだろうか?
Company.java
package analysis.data;
import java.io.Serializable;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import javax.persistence.*;
/**
* Entity implementation class for Entity: Company
*
*/
@Entity
public class Company implements Serializable {
@Id
@GeneratedValue
private Integer id;
@Column(unique=true, nullable=false)
private String lastname;
@OneToMany(mappedBy="company", fetch=FetchType.LAZY) // LAZY = fetch when needed, EAGER = fetch immediately
private List<Employee> employees;
private static final long serialVersionUID = 1L;
public Company() {
super();
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastname() {
return this.lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname.toUpperCase();
}
public List<Employee> getEmployees() {
return this.employees;
}
}
Employee.java私controller.java
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
....
} else if (methode.equals("get") && action.equals("/detailsCompany")) {
doDetailsCompany(request, response);
....
private void doDetailsCompany(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int id = Integer.valueOf(request.getParameter("id"));
Company company = CompanyDAO.retrieveById(id);
request.setAttribute("company", company);
loadJSP(urlDetailsCompany, request, response);
}
....
内側と私のCompanyDAO.java内部
package analysis.data;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
/**
* Entity implementation class for Entity: Company
*
*/
@Entity
public class Employee implements Serializable {
@Id
@GeneratedValue
private Integer id;
@Column(nullable=false)
private String firstname;
@Column(nullable=false)
private String lastname;
@ManyToOne
private Company company;
private static final long serialVersionUID = 1L;
public Employee() {
super();
//nbAbsences = 0;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getFirstname() {
return this.firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return this.lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public Company getCompany() {
return this.company;
}
public void setCompany(Company company) {
this.company = company;
if (!company.getEmployees().contains(this)) {
company.getEmployees().add(this);
}
}
@Override
public String toString() {
return "[" + this.getId() + "] " + this.getFirstname() + " " + this.getLastname();
}
}
public class CompanyDAO {
...
public static Company retrieveById(int id) {
EntityManager em = GestionFactory.factory.createEntityManager();
Company company = em.find(Company.class, id);
em.close();
return company;
}
...
public static List<Company> getAll() {
EntityManager em = GestionFactory.factory.createEntityManager();
Query q = em.createQuery("SELECT c FROM Company c");
@SuppressWarnings("unchecked")
List<Company> listCompany = q.getResultList();
return listCompany;
}
}
と、ここで私は会社名(ID)はその会社の全従業員を見てdetailsCompanyにリダイレクトされるように選択します。
<jsp:useBean id="companys" type="java.util.List<analysis.data.Company>" scope="request"/>
<table>
<tr>
<th>Company Name</th>
<th>Number of employees</th>
<th>Employees</th>
</tr>
<% for (Company company : companys) {%>
<tr>
<td><%=company.getNom()%></td>
<td><%=company.getEmployees().size()%></td>
<td><a href="<%= getServletContext().getContextPath()%>/do/detailsCompany?id=<%=company.getId()%>">See the list</a></td>
</tr>
<% } %>
</table>
、最終的には私の
detailsCompany.jsp
JSPファイル内に、私はどのように上の損失で午前選択した会社ごとに従業員のリストを取得します。
<jsp:useBean id="company" type="java.util.List<analysis.data.Company>" scope="request"/>
<p>Company : <%=company.getEmployees()%></p>
私はこの {IndirectList:インスタンス化されていない}取得する代わりに、従業員のリストの を。 私のコードが正しいかどうかわかりません。 「:インスタンス化されていないIndirectList」
あなたが従業員を印刷したい場合は
私は夕方全体の質問を読むでしょう。あなたは私たちに同情していますか? – Andremoniy