Критерии гибернации показывают нулевые результаты, но сгенерированный запрос возвращает правильные результаты

Я озадачен, поскольку я написал следующие критерии, которые возвращают ноль результатов, однако, когда я запускаю сгенерированный запрос SQL в моей базе данных, возвращает правильные результаты.

Criteria criteria = sessionFactory.getCurrentSession()
                .createCriteria(Product.class, "product")
                .add(Restrictions.ilike("product.name", " %" + name + "%"))
                .add(Restrictions.ilike("product.code", code))
                .setProjection(Projections.property("product.name").as("name"));

List<String> st = criteria.list();
System.err.println("st size is:" + st.size());


@Entity
public class Product implements java.io.Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 887867468898785287L;
    @Id
    private String code;
    @ManyToOne
    @Id
    private Factory factory;
    private String name;
    ...

}

Консольный вывод

Hibernate: 
    /* criteria query */ select
        this_.name as y0_ 
    from
        Product this_ 
    where
        lower(this_.name) like ? 
        and lower(this_.code) like ?
st size is:0

1 ответ

Решение

Как предположил Сергей Лагутин, я полагаю, что проблема заключается в пробеле перед% в вашем коде. Если это не было решением, проверьте подключение к базе данных, чтобы убедиться, что вы подключены к правильной базе данных.

Другие вопросы по тегам