Я получаю список с ежемесячными данными из базы данных.В настоящее время я отсортировал данные от January
до December
в соответствии с базой данных.
Но я хотел, чтобы выходные данные были в порядке, начиная с June
, а конечный месяц должен быть May
.
Пример выходного списка:
[
{
"accountlinevaluesId": 8,
"accountlineId": 3,
"month": "januar",
"accountNumber": 177,
"name": "Befestigungen",
"amount": 0
},
{
"accountlinevaluesId": 9,
"accountlineId": 3,
"month": "januar",
"accountNumber": 179,
"name": "Andere Bauten",
"amount": -625
}, {
"accountlinevaluesId": 165,
"accountlineId": 4,
"month": "februar",
"accountNumber": 179,
"name": "Andere Bauten",
"amount": -625
},
{
"accountlinevaluesId": 166,
"accountlineId": 4,
"month": "februar",
"accountNumber": 210,
"name": "Maschinen",
"amount": -1962
}, {
"accountlinevaluesId": 329,
"accountlineId": 5,
"month": "maerz",
"accountNumber": 211,
"name": "Testgestell",
"amount": -897.75
},
{
"accountlinevaluesId": 330,
"accountlineId": 5,
"month": "maerz",
"accountNumber": 233,
"name": "Motor f. Arbeitsplattfo",
"amount": 0
}]
кто-то может сказатьмне, как я могу лучше всего продолжить и как я могу решить это в Java?
текущий запрос выглядит так:
public List<AccountlinevaluesEntity> findAllAccountLineValuesByMandantId(Long mandantId, String title, String context, String month) {
List<AccountlinevaluesEntity> accountLineValues = new ArrayList();
if (mandantId > 0 && title != null && context !=null) {
try {
List accountIds = new AccountManager().findAccountByMandantId(mandantId);
startOperation(false);
if (accountIds != null && accountIds.size() > 0) {
List accountLineIds =
getSession()
.createQuery("SELECT ale.accountlineId FROM AccountlineEntity ale WHERE ale.accountId IN :accountIds AND ale.title = :title AND ale.context = :context")
.setParameter("accountIds", accountIds)
.setParameter("title", title)
.setParameter("context", context)
.list();
if (accountLineIds != null && accountLineIds.size() > 0) {
if (month == null) {
return getSession()
.createQuery("SELECT alve FROM AccountlinevaluesEntity alve WHERE alve.accountlineId IN :accountlineIds")
.setParameter("accountlineIds", accountLineIds)
.list();
} else {
return getSession()
.createQuery("SELECT alve FROM AccountlinevaluesEntity alve WHERE alve.accountlineId IN :accountlineIds AND alve.month = :month")
.setParameter("accountlineIds", accountLineIds)
.setParameter("month", month)
.list();
}
}
}
} catch (HibernateException e) {
handleException(e);
} finally {
getSession().close();
}
}
return accountLineValues;
}