2016-04-19 2 views
0

Я знаю, что этот вопрос задан много раз. Я обыскал весь переполнение стека, но не смог получить от этого много. Я понимаю, что это исключение возникает, когда имя столбца, используемое в запросе, отличается от свойства, указанного в классе bean, однако оба моих параметра одинаковы.HTTP Status 500 - Тип данных для узла: org.hibernate.hql.internal.ast.tree.IdentNode

Полное Ошибка:

java.lang.IllegalStateException: Отсутствует тип данных для узла: org.hibernate.hql.internal.ast.tree.IdentNode + - [IDENT] IdentNode: 'iduserInfo' {originalText = iduserInfo}

Это мой запрос:

List<Object[]> tuples = session.createQuery("select iduserInfo, SUM(points) from " + persistentClass.getName() 
      + " GROUP BY iduserInfo " 
      + "ORDER BY SUM(points) DESC").list(); 

И это мой боб класс:

@XmlRootElement 
@Entity 
@Table(name = "userInfo") 
public class UserInfo { 

protected @XmlElement int id; 
protected @XmlElement int iduserInfo; 
protected @XmlElement int idquestion; 
protected @XmlElement String location; 
protected @XmlElement String state; 
protected @XmlElement String type; 
protected @XmlElement Date timestamp; 
protected @XmlElement Double latitude; 
protected @XmlElement Double longitude; 
protected @XmlElement Integer points; 

Запрос выполняется для ВСЕХ параметров, за исключением iduserInfo и idquestions. Мои имена столбцов в таблице имеют точно такие же параметры, хотя я где-то читал, что это не имеет значения, вам нужно только сопоставить свои параметры с классами bean!

+0

И в чем проблема в точности? – Reinard

ответ

0

Я решил проблему, изменив имена столбцов «iduserInfo» и «idquestion» на «user» и «question» соответственно. Я думаю, причина в том, что уже есть параметр с «id». Я не понимаю, почему это вызывало проблему, но изменение имени столбца на то, что даже не было отдаленно связано с параметром «id», сделало трюк для меня!