1 Востаннє редагувалося orion_1990 (10.01.2014 22:37:34)

Тема: Як витягнути останній запис з таблиці MySql використовуючи Hibernate?

Привіт усім! Потрібно витягнути останній доданий запис з таблиці і його вивести його на JSP сторінку. Використовуючи наступний код:

public class CabinetController implements Controller {

    @Override
    public ModelAndView handleRequest(HttpServletRequest hsr,
                                      HttpServletResponse hsr1) throws Exception {
        ModelAndView mv = new ModelAndView("kabinet");
        String out = "Výpis uživatelů: ";
        try {
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
            session.beginTransaction();   
     List result = session.createQuery("from Kabinet ORDER BY id  desc LIMIT 1").list();
            mv.addObject("kor", result);
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
        mv.addObject("message", out);
        return mv;
    }

мені виводить усю таблицю але в правильному порядку, тобто останній доданий запис знаходиться на самому верху таблиці, але все ж таки мені потрібно відображати лише 1 (останній  введений) запис.
Буду вдячний за будь яку допомогу))

2 Востаннє редагувалося truesupport (10.01.2014 23:00:56)

Re: Як витягнути останній запис з таблиці MySql використовуючи Hibernate?

джави не знаю, тим більше ормів для неї, вмію користуватись гуглом :), можливо поможе

перше що я знайшов можна використовувати

session.createNativeQuery("select * from Kabinet order by id desc limit 1").tolist()

ще можеш глянути на ось це

session.setFirstResult(fistRes);// this will variable
session.setMaxResults(maxRes);// this will also be variable as parameter.

найшов на stack overflow, нічого не зрозумів, але можливо також буде корисно

ось тут зрозуміло написано
http://stackoverflow.com/questions/1239 … ery-in-hql

Подякували: orion_19901

3

Re: Як витягнути останній запис з таблиці MySql використовуючи Hibernate?

Сам запит працює на мою думку коректно, бо виводить останій доданий запис на самий верх(знаходить найбільший id), а проблема  контейнері List, якщо його замінити на простий String то таблиці взагалі не виводить і помилки не вибиває(

4

Re: Як витягнути останній запис з таблиці MySql використовуючи Hibernate?

тут http://stackoverflow.com/a/4666044 народ пише що можна попробувати слово ліміт з квері забрати.

Подякували: orion_19901

5

Re: Як витягнути останній запис з таблиці MySql використовуючи Hibernate?

А якщо з List витягнути перший елемент через get:

result.get(0);

і далі працювати із ним?

Подякували: orion_19901

6

Re: Як витягнути останній запис з таблиці MySql використовуючи Hibernate?

якщо використовувати

result.get(0)

вистрибує наступне повідомлення

javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>

7

Re: Як витягнути останній запис з таблиці MySql використовуючи Hibernate?

Можливо, змінити запит на:

List <Type> result = (List <Type>) session.createQuery("from Kabinet ORDER BY id  desc LIMIT 1").list();

де Type - тип елементу списку; для цього можна створити відповідний клас або спробувати String, якщо результат потрібний тільки для виводу.

Подякували: orion_19901

8

Re: Як витягнути останній запис з таблиці MySql використовуючи Hibernate?

скористався Вашою порадою, але всерівно виводь цілу таблицю

9

Re: Як витягнути останній запис з таблиці MySql використовуючи Hibernate?

orion_1990 написав:

скористався Вашою порадою, але всерівно виводь цілу таблицю

А після цього спробуйте застосувати:

result.get(0);
Подякували: orion_19901