From 98cc704592675bf14c21ae2848980860ac30a478 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sun, 14 Jan 2018 20:54:42 +0400 Subject: [PATCH] Fixed visible empty sets in new tournament dialog (#4415) --- .../cards/repository/ExpansionRepository.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Mage/src/main/java/mage/cards/repository/ExpansionRepository.java b/Mage/src/main/java/mage/cards/repository/ExpansionRepository.java index 51ae3471b70..6df02be31ef 100644 --- a/Mage/src/main/java/mage/cards/repository/ExpansionRepository.java +++ b/Mage/src/main/java/mage/cards/repository/ExpansionRepository.java @@ -2,6 +2,7 @@ package mage.cards.repository; import com.j256.ormlite.dao.Dao; import com.j256.ormlite.dao.DaoManager; +import com.j256.ormlite.dao.GenericRawResults; import com.j256.ormlite.jdbc.JdbcConnectionSource; import com.j256.ormlite.stmt.QueryBuilder; import com.j256.ormlite.stmt.SelectArg; @@ -83,17 +84,26 @@ public enum ExpansionRepository { } public ExpansionInfo[] getWithBoostersSortedByReleaseDate() { - ExpansionInfo[] sets = new ExpansionInfo[0]; + try { - QueryBuilder qb = expansionDao.queryBuilder(); - qb.orderBy("releaseDate", false); - qb.where().eq("boosters", new SelectArg(true)); - List expansions = expansionDao.query(qb.prepare()); - sets = expansions.toArray(new ExpansionInfo[0]); + // only with boosters and cards + GenericRawResults setsList = expansionDao.queryRaw( + "select * from expansion e " + + " where e.boosters = 1 " + + " and exists(select (1) from card c where c.setcode = e.code) " + + " order by e.releasedate desc", + expansionDao.getRawRowMapper()); + + List resList = new ArrayList<>(); + for (ExpansionInfo info : setsList) { + resList.add(info); + } + return resList.toArray(new ExpansionInfo[0]); + } catch (SQLException ex) { logger.error(ex); + return new ExpansionInfo[0]; } - return sets; } public List getSetsWithBasicLandsByReleaseDate() {