2012-09-24 2 views
3

В спящем режиме я использовал findById() и findAll() в слое Дао. findById() метод работает, как я и ожидал, но findAll() всегда возвращает пустой набор результатов, я все еще не мог понять причину, любой мог помочь мне решить эту проблему,Метод findAll() дает пустой набор результатов в Hibernate

Примечание: не существует исключения, возвращается только пустой список

Вот мой код

Найти весь метод

public List<T> findAll() { 
     Query query = getSession().createQuery("SELECT obj FROM " + persistentClass.getSimpleName() + " obj"); 
     return query.list() 
    } 

Find методом Id

public T findById(Long id) { 
     T result = (T) getSession().get(getPersistentClass(), id); 
     return result; 
    } 

метод getSession

protected Session getSession() { 
     if (session == null) 
      session = tenantBasedSessionFactory.getTenantBasedSession("tenantId"); 
//   throw new IllegalStateException("Session has not been set on DAO before usage"); 
     return session; 
    } 

Спасибо заранее Приветствия

+0

Что говорят журналы SQL. Включите ведение журнала SQL и убедитесь, что SQL-запрос является правильным. –

+0

Спасибо за ответ, Вот запрос sql «SELECT obj FROM Employee obj», я думаю, что это правильно, – ExCode

+0

Я знаю, что это глупый вопрос, но есть ли у вас какие-либо данные в таблице Employee? Я имею в виду зарегистрированные данные? – chris

ответ

0

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

Query query = getSession().createQuery("FROM " + persistentClass.getSimpleName()); 

Я считаю, что лучше читать для простых «получить все» запросы, как вам не нужны никакие псевдонимы, если только один объект возвращается.

Смежные вопросы