dao
@Override
public List<Book> task3() {
Session session = this.sessionFactory.getCurrentSession();
//оба запроса работают правильно
//try1
// String sql = "SELECT books.genre, COUNT(*) AS counter FROM books GROUP BY genre";
//try2
String sql = "SELECT b.genre as name, count(b.id) as count from Books b group by b.genre";
SQLQuery query= session.createSQLQuery(sql);
query.addEntity(Book.class);
List<Book> authorList1 = query.list();
return authorList1;
}
Controller
@RequestMapping(value = "/task3", method = RequestMethod.GET)
public String task3(Model model){
model.addAttribute("task3", this.bookService.task3());
return "task3";
}
view
<c:if test="${!empty task3}">
<table class="tg">
<tr>
<th width="120">name</th>
<th width="120">genre</th>
<th width="120">rating</th>
<th width="120">published</th>
</tr>
<c:forEach items="${task3}" var="author">
<tr>
<td>${author.name}</td>
<td>${author.genre}</td>
<td>${author.rating}</td>
<td>${author.published}</td>
</tr>
</c:forEach>
</table>
</c:if>
Entity
@Entity
@Table(name = "Books")
public class Book {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "name")
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Column(name = "published")
@Temporal(TemporalType.DATE)
private Date published;
@Column(name = "genre")
private String genre;
@Column(name= "rating")
private Integer rating;
как правильно вывести count на jsp? не знаю какое поле выводить вместе с genre.
Есть варианты выводу на jsp через jdbc но вопрос тот-же, вывод самого count'a
При таком запуске ругаеться на невыполнений запрос и то что не видит id.
Нужна помощь господа)