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 Trainer 567 Точки

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

:)

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

Благодаря!

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

0
RoYaL avatar RoYaL Trainer 6849 Точки

Там от където ги вадиш да им удариш едно сортиране? Не сте ли учили сортиране във 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 Trainer 567 Точки

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

0
RoYaL avatar RoYaL Trainer 6849 Точки

В интерфейс е защото така го дефинира 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 Trainer 6849 Точки

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

0
Xadera avatar Xadera 5 Точки

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

0
RoYaL avatar RoYaL Trainer 6849 Точки

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

0
Xadera avatar Xadera 5 Точки

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

0
RoYaL avatar RoYaL Trainer 6849 Точки

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

0
Xadera avatar Xadera 5 Точки

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

0
Xadera avatar Xadera 5 Точки

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

0
Xadera avatar Xadera 5 Точки

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

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.