HibernateTemplate.find возвращает правильное количество строк, но с теми же данными - PullRequest
0 голосов
/ 12 августа 2011

Класс продукции

@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;
    }
}

Функция запроса:

@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;
    }

В вышеприведенной функции распечатка верна по количеству строк, но все строки показывают данные первой строки. Есть идеи?

PS: использование Sybase

1 Ответ

2 голосов
/ 12 августа 2011

ticket - это идентификатор (т. Е. Первичный ключ) объекта продукта.В базе данных должен быть только один товар с данным билетом.Если их несколько, значит, ваше отображение или модель базы данных неверны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...