[英]Outputting data from db using jpa
嗨,我嘗試使用jpa從db打印所有客戶,但我得到的輸出格式如下: model.Customer@3d47d922, model.Customer@5f6f2271, model.Customer@6facbae5
我使用的繼承方法是:
public List<Customer> getAllCustomers()
{
EntityManager em = null;
List<Customer> resultList = new ArrayList<Customer>();
try
{
em = JpaUtil.getFactory().createEntityManager();
TypedQuery<Customer> query = em.createQuery("select p from Customer p", Customer.class);
resultList = query.getResultList();
}
finally {
JpaUtil.closeQuietly(em);
}
return resultList;
我嘗試在此輸出客戶的Heres Servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
CustomerDAO dao = new CustomerDAO();
response.getWriter().println(dao.getAllCustomers());
這是我的模型課:
@Entity
public class Customer {
@Id
@SequenceGenerator(name = "my_seq", sequenceName = "seq1", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "my_seq")
private Long id;
private String first_name;
private String surname;
private String code;
public enum Customertype{Private, Corporate};
@Enumerated(EnumType.STRING)
private Customertype customer_type;
public Customer() {}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return first_name;
}
public void setFirstName(String firstname) {
first_name = firstname;
}
public String getSurname() {
return surname;
}
public void setSurname(String surName) {
surname = surName;
}
public Customertype getCustomertype() {
return customer_type;
}
public void setCustomertype(Customertype customerType) {
this.customer_type = customerType;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
您需要在客戶類中重寫toString()方法 。 每當您嘗試使用println()打印對象時,都會調用toString()方法。
Object類中toString()的默認行為是打印該類的名稱,一個@符號和該對象的hascode。 那就是你所看到的。
例如
public String toString(){
return this.getFirstName();
}
您需要在類中重寫toString
方法,因為它將為您提供您可以理解的可讀格式的有關對象的清晰信息。
覆蓋toString
的優點:
幫助程序員記錄和調試Java程序
由於toString是在java.lang.Object中定義的,並且不會提供有價值的信息,因此,對於子類覆蓋它是一個很好的實踐。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.