开发者

HibernateTemplate.find returns the correct number of rows but with the same data

Product Class

@Entity
@Table (name="product")

public class Productimplements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private 开发者_开发技巧Date date;
    private String type;
    private Integer ticket;

    @Id
    @Column (name="ticket")
    public Integer getTicket() {
        return ticket;
    }
    public void setTicket(Integer ticket) {
        this.ticket = ticket;
    }


    @Column (name="date")
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }

    @Column (name="type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
}

Query Function:

@SuppressWarnings("unchecked")
    @Override
    public List<Product> getProductByTicket(Integer ticket) {
        Object [] params = new Object [] {ticket};
        String hql = "from Product as p where p.ticket = ?";

        List <Product> productList = hibernateTemplate.find(hql, params);

        for (Product i: productList) {
            System.out.printf ("DATE = %s TYPE = %s\n", i.getDate(), i.getType());
        }
        return productList;
    }

In the above function, the print out is correct in the number of rows but all the rows are showing the data of the first row. Any ideas?

PS: Using Sybase


ticket is the ID (i.e. the primary key) of the product entity. There should be only one product with a given ticket in database. If there's more than one, then your mapping or your database model is wrong.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜