Профил
Loading...
Xadera avatar Xadera 5 Точки

Извикване на articles в обратен ред.

Да речем, че изпозлвам кодът който се изпозлаваше за Java блогът. Kак мога да си извикам статиите в обратен ред на post-ване?

<th:block th:each="article : ${articles}"> например. 

 

Не мога ли да ги foreach-на в обратен ред с thymeleaf и как става това?

Тагове:
0
Софтуерни технологии 16/04/2017 21:36:53
Sim0o0na:
Отговорено е.
Sim0o0na avatar Sim0o0na SoftUni Team Moderator Trainer 548 Точки

Трябва да сортираш масива по някакъв критерий, в твоя случай - дата,  още при подаването към view-то

:)

0
17/04/2017 08:44:52
Xadera avatar Xadera 5 Точки

Благодаря!

Имплементирах си дата, но как точно става самото сортиране? Смисъл как да изкарам "articles" на масив.  Засъжаление нещо google-ването не ми се получава точно тук, затова ще досаждам пак.

0
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

Там от където ги вадиш да им удариш едно сортиране? Не сте ли учили сортиране във Fundamentals със OrderBy(x => ...)? Защото в Java е почти същото, само че е stream().sorted((x,y) -> ...).

Иначе има по-хитър вариант, ама едва ли се очаква от вас да го намерите: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/ - потърси в страницата "order".

1
Xadera avatar Xadera 5 Точки
public interface ArticleRepository extends JpaRepository<Article, Integer> {
    @Query("SELECT Date FROM Article ORDER BY date desc ")
    List<Article>  findAllByOrderByDateDesc();
}

Не ми се получи. Къде бъркам?
И да учили сме, просто не разбирам какво е "нещото от което го викам" и как се сортира.

0
18/04/2017 12:31:30
Sim0o0na avatar Sim0o0na SoftUni Team Moderator Trainer 548 Точки

Защо ти е да е в интерфейс?

0
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

В интерфейс е защото така го дефинира Spring Data. Хранилищата са ти интерфейси, а Spring им прави проксита и имплементира методите им.

В случая грешката е в @Query-то. То между другото е излишно. Би трябвало да проработи само по името на метода, стига едното "By" да изчезне и да се казва "findAllOrderByDateDesc". Ако искаш цялата информация за Article-а не трябва да взимаш само Date-а. Т.е. "SELECT a FROM Article a ...." вместо "SELECT Date"

0
18/04/2017 13:04:01
Xadera avatar Xadera 5 Точки

Сега ме хвърли някаква супер дебилна грешка:
оrg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'articleController': Unsatisfied dependency expressed through field 'articleRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'articleRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List softuniBlog.repository.ArticleRepository.findAllOrderByDateDesc(java.util.Date)!

0
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

Махни цялото куери да видим

0
Xadera avatar Xadera 5 Точки

Същата работа.

0
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

Възможно е да си прав за първото By между другото. При мен заработи така. findAllByOrderByDateDesc и без @Query.

0
Xadera avatar Xadera 5 Точки

Така пали, ама не сортира нищо. Плача...

0
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

Ти в контролера нали ползваш този метод, а не само findAll() ?

0
Xadera avatar Xadera 5 Точки

Хъх, не мисля, че имам подобен метод в контролера избощо.

0
Xadera avatar Xadera 5 Точки

Nvm, видях какво имаше предвид. Много съм зле. Благодаря за помощта на всички!

0
Xadera avatar Xadera 5 Точки

А къде трябва да е ?

0