У меня есть веб-приложение на Java, использующее Spring MVC. Объекты обычно имеют списки других объектов в качестве своих свойств. Мы строим объекты с помощью одного запроса, возвращающего несколько ResultSets, и обрабатываем его в DAO.
Пример: в моей колоде есть список карт.
public class Deck{
private int id;
private String name;
private List<Card> cards;
//Constructor and Getters & Setters
}
public class Card{
private int id;
private String name;
}
Для его построения мы используем запрос, который возвращает ResultSet для свойств колоды и другие ResultSet для построения карт и помещения списка в колоду.
Deck deck = null;
List<Card> cards = new ArrayList<Card>();
this.ps = this.conecction.prepareStatement("SP_SELECT_DECK ?");
this.ps.setInt(1, 1);
boolean isResultSet = this.ps.execute();
int nResult = 0;
do{
if(isResultSet){
this.rs = this.ps.getResultSet();
while(this.rs.next()){
switch (nResult) {
case 0:
//Build the deck using the ResultSet
deck = new DeckBuilder().newInstance(rs);
break; case 1:
//Add a new card built using the resultset
cards.add(new CardBuilder().newInstance(rs));
break;
}
}
this.rs.close();
}else{
break;
}
nResult++;
} while (this.ps.getMoreResults());
deck.setCards(cards);
Это лучшая практика? Или лучше сделать запрос с информацией о колоде, вернуться в приложение Java и вызвать другой запрос, чтобы заполнить список карт?
Вопрос касается шаблонов, передового опыта, производительности и сетевого трафика