java로 프로그램을 작성하여 공급자에게 한 모든 주문을 반환해야합니다. 주문의 ID를 표시하는 대신 [email protected]을 표시합니다. 여기서 sakila.entity는 Order.java 및 Order.hbm.xml을 포함하는 패키지입니다. 문제는 displayResult() 메서드에 있다고 생각합니다. 어쩌면 누군가가 알아낼 수 있습니다. 감사합니다.프로그램에서 객체의 원하는 문자열 표현을 표시하지 않습니다.
package sakila.ui;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import sakila.entity.Comanda;
import sakila.entity.Furnizor;
import sakila.util.HibernateUtil;
public class SearchOrders extends javax.swing.JFrame {
public SearchOrders() {
initComponents();
}
private void queryButton1ActionPerformed(java.awt.event.ActionEvent evt) {
//if (!idProviderTextField.getText().trim().equals(""))
runQueryBasedOnIdFurnizor();
}
private void runQueryBasedOnIdProvider(){
executeHQLQuery("from Provider c where c.idprovider like '" + idProvider.getText() + "%'");
}
private void executeHQLQuery(String hql){
try{
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
org.hibernate.Query q = session.createQuery(hql);
List resultList = q.list();
displayResult(resultList);
session.getTransaction().commit();
}catch (HibernateException he){
he.printStackTrace();
}
}
private void displayResult(List resultList){
Vector<String> tableHeaders = new Vector<String>();
Vector tableData = new Vector();
tableHeaders.add("IdOrder");
for (Object o : resultList){
Provider p = (Provider) o;
Set<Order> c = p.getOrder();
Iterator it = c.iterator();
while (it.hasNext()) {
Object element = it.next();
System.out.println(element);
Vector <Object> oneRow = new Vector <Object>();
oneRow.add(element);
tableData.add(oneRow);
}
}
resultTable1.setModel(new DefaultTableModel(tableData, tableHeaders));
}
public static void main(String args[]) {
public void run() {
new SearchOrders().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTextField idProviderTextField;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton queryButton1;
private javax.swing.JTable resultTable1;
// End of variables declaration
} 여기
클래스는 오후 10시 19분 40초 Hibernate에 의해package sakila.entity;
Order.java
// 2012년 4월 9일을 생성됩니다 여기에 프로그램입니다 도구 3.2.1.GAimport java.util.HashSet; import java.util.Set;
공용 클래스 주문 지금 System.out.println(element);
라인이 바로 Order
개체의 일부 내부 코드를 인쇄 기본 toString()
방법을 사용 java.io.Serializable을 {
private int idorder;
private Client client;
private Depozit warehouse;
private Furnizor provider;
private Integer idproduct;
private Integer unitmas;
private Integer quantity;
private Set comdetals = new HashSet(0);
private Set facturas = new HashSet(0);
public Order() {
}
public Order(int idorder) {
this.idorder = idorder;
}
public Order(int idorder, Client client, Warehouse warehouse, Provider provider, Integer idproduct, Integer unitmas, Integer quantity, Set comdetals, Set facturas) {
this.idorder = idorder;
this.client = client;
this.warehouse = warehouse;
this.provider = provider;
this.idproduct = idproduct;
this.unitmas = unitmas;
this.quantity = quantity;
this.comdetals = comdetals;
this.facturas = facturas;
}
public int getIdorder() {
return this.idorder;
}
public void setIdorder(int idorder) {
this.idorder = idorder;
}
public Client getClient() {
return this.client;
}
public void setClient(Client client) {
this.client = client;
}
public Warehouse getWarehouse() {
return this.warehouse;
}
public void setWarehouse(Warehouse warehouse) {
this.warehouse = warehouse;
}
public Provider getProvider() {
return this.provider;
}
public void setProvider(Provider provider) {
this.provider = provider;
}
public Integer getIdproduct() {
return this.idproduct;
}
public void setIdproduct(Integer idproduct) {
this.idproduct = idproduct;
}
public Integer getUnitmas() {
return this.unitmas;
}
public void setUnitmas(Integer unitmas) {
this.unitmas = unitmas;
}
public Integer getQuantity() {
return this.quantity;
}
public void setQuantity(Integer quantity){
this.quantity = quantity;
}
public Set getComdetals() {
return this.comdetals;
}
public void setComdetals(Set comdetals) {
this.comdetals = comdetals;
}
public Set getFacturas() {
return this.facturas;
}
public void setFacturas(Set facturas) {
this.facturas = facturas;
}
}
Order.java에 대한 코드를 게시 할 수 있습니까? (제 대답으로 도움이되지 않는 경우)? – matt
오브젝트의 디폴트의 toString() 표현은, 오브젝트의 완전 수식 클래스 명, @ 다음에 오브젝트의 hashCode가 뒤 따른다. 그래서 여러분이 보게되는 것은 여러분이 객체의 클래스에 적절한 public String toString() 메소드를주지 않으면 객체가 표시하고자하는 정보를 보여주는 String을 반환하지 않는 한 여러분이보아야하는 것입니다. 그의 정확하고 간결한 대답은 @matt에 1+입니다. –
@matt 당신은 어떻게 id를 표시하고 해시 코드가 아닌지 보려면 toString() 메서드를 사용할 수있는 아이디어가 있습니까? 시간이있을 때 나를 도울 수 있습니다. 감사! – alin