Вывести результат запроса в таблицу jsp Java Spring MVC jsp - PullRequest
0 голосов
/ 29 сентября 2018

Мне нужно распечатать на стол человека, который старше 55 лет, но это печатать каждого человека из БД.Я не знаю, что не так.

Дао

@Override
    @SuppressWarnings("unchecked")
    public List<Book> old1() {
        Session session = this.sessionFactory.getCurrentSession();
//        List<Book> bookListt = session.createQuery("SELECT BOOK_TITLE, BOOK_AUTHOR, birthday FROM bookmanager.books WHERE birthday <= DATE_SUB(CURDATE(), INTERVAL 15 year)").list();
        List<Book> bookList1 = session.createSQLQuery("SELECT ID, BOOK_TITLE, BOOK_AUTHOR, born FROM bookmanager.book  WHERE born <= DATE_SUB(CURDATE(), INTERVAL 10 year))").list();

        return bookList1;
    }

Контроллер:

@RequestMapping(value = "books", method = RequestMethod.GET)
    public String old(Model model){
        model.addAttribute("book", new Book());
        model.addAttribute("old", this.bookService.listBooks());

        return "books";
    }

, и я пытаюсь напечатать этого человека, но это неправильно.Печатает весь песон из БД

Как это исправить?

<c:if test="${!empty old1}">
    <table class="tg">
        <tr>
            <th width="80">ID</th>
            <th width="120">Title</th>
            <th width="120">Author</th>
            <th width="120">Price</th>
            <th width="120">born</th>
            <th width="60">Edit</th>
            <th width="60">Delete</th>
        </tr>
        <c:forEach items="${old1}" var="book1">
            <tr>
                <td>${book1.id}</td>
                <td><a href="/bookdata/${book1.id}" target="_blank">${book.bookTitle}</a></td>
                <td>${book1.bookAuthor}</td>
                <td>${book1.price}</td>
                <td>${book1.born}</td>
                <td><a href="<c:url value='/edit/${book1.id}'/>">Edit</a></td>
                <td><a href="<c:url value='/remove/${book1.id}'/>">Delete</a></td>
            </tr>
        </c:forEach>
    </table>
</c:if>

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Изменить запрос на критерии.Собственный SQL-запрос не работает.

public List<Book> listBooks() {
        Session session = this.sessionFactory.getCurrentSession();


        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) - 55);

        List<Book> bookList = session.createCriteria(Book.class).add(Restrictions.le("born", calendar.getTime())).list();


        return bookList;
    }
0 голосов
/ 29 сентября 2018

Я не уверен, что ваш код Hibernate / Java полностью корректен, но ваш запрос MySQL выглядит некорректно.Если вы хотите настроить таргетинг на все книги, чье поле born старше 55 лет с текущей даты, используйте это:

SELECT id, bookTitle, bookAuthor, birthday
FROM Book
WHERE born <= DATE_SUB(CURDATE(), INTERVAL 55 year)
ORDER BY born;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...