2016-06-24 2 views
0

Тип данных для столбца TICKET_ID - int в БД. Тем не менее проблема сохраняется. Также установите публикацию getter/seters.Javax.el.PropertyNotFoundException: свойство 'ticket_id' не найдено по типу java.lang.Integer

Модель

@Id 
@Column(name = "TICKET_ID") 
private Integer ticket_id; 



public Integer getTicket_id() { 
    return ticket_id; 
} 

public void setTicket_id(Integer ticket_id) { 
    this.ticket_id = ticket_id; 
} 


@Column(name = "PRIORITY") 
private String priority; 

HQL

Session session = sessionFactory.openSession(); 

    String hql = "Select ticket_id from Ticket"; 

    @SuppressWarnings("unchecked") 
    List<Ticket> ticketList = session.createQuery(hql) 
      .list(); 
    session.close(); 
    return ticketList; 

JSP

<th>Category</th> 
        </tr> 
        <c:forEach items="${ticketList}" var="usr"> 
         <tr> 
          <td><c:out value="${usr.ticket_id}" /></td> 
          <td>Priority</td> 

Исключение

javax.el.PropertyNotFoundException: свойство 'TICKET_ID' не найден по типу java.lang.Integer

ответ

2

Ваш запрос

select ticket_id from Ticket 

Этот запрос возвращает List<Integer> содержащий все идентификаторы билета из таблицы билетов, а не List<Ticket>. Если вы хотите получить список билетов, запрос должен быть

select t from Ticket t 

Вы должны также стремиться к recpect именования конвенции Java: ticketId, не ticket_id.

+0

Я думаю, вы только что указали на реальную ошибку, которую я совершал. На самом деле запрос должен был быть сложным запросом с данными, взятыми из двух таблиц, но он всегда давал мне ошибку, т. Е. Потому, что я возвращал другой набор данных в список ... поэтому здесь я пытался разбиться на простой запрос и посмотреть, где была проблема. Спасибо! Спасибо за предложение. Я запомню это. – Rishi

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