#java #mysql #spring #hibernate #spring-mvc
#java #mysql #весна #гибернация #spring-mvc
Вопрос:
Я могу получить значение одного столбца и получить доступ к этому значению с помощью класса контроллера, но что нужно сделать для получения значений нескольких столбцов?
Метод DAO
@Transactional(readOnly = true)
public List<Social> getAllSocialData() throws FastestDAOException {
try {
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("Select social.followers From Social social where social.socialId=1");
return query.list();
}
catch (Exception ex) {
System.out.println("Unable to get data" ex);
}
Метод контроллера
private static List<QuickStartSocial> followers = null;
public String aBCForm(@ModelAttribute(value = "abcbean") QuickStartBean quickstartbean,Model model) {
try {
followers=quickStartDataService.getAllSocialData();
model.addAttribute("followers",followers);
}
catch (Exception e) {
e.printStackTrace();
}
return "quickstart/create";
}
База данных
ID - socialId
column1 - followers
column2- tweets
JSP-файл
<tr>
<td>
<c:forEach var="in" items="${followers}">
${in.tweets}
</c:forEach>
</td>
</tr>
Мне нужно получить, предположим, подписчиков и «твиты» из одной и той же социальной таблицы, в которой данные сохраняются в БД. Итак, какой запрос гибернации я должен использовать и как я могу получить доступ к значению обоих tweets и following в моем классе контроллера?
Комментарии:
1. Изменение запроса может быть таким —
SELECT social.followers, social.tweets FROM Social social WHERE social.socialId=1
? И, соответственно, измените свойList<>
, чтобы удерживать обаfollwers
amp;tweets
?2. Я пробовал это, но это не сработало
Ответ №1:
У вас есть несколько вариантов:
-
возвращаемая сущность
выберите social из Social social, где social.socialId=1
-
создайте новый DTO, а затем
выберите новый SocialDto(social.подписчики, социальные.твиты) из Social social, где social.socialId = 1
-
сопоставьте его со списком
Запрос q = session.CreateQuery(«выберите social.подписчики, социальные.твиты из социальных социальных, где social.socialId = 1»);
Список сотрудников = (Список)q.list();
Комментарии:
1. я сохраняю значения обоих столбцов в списке, но я не могу получить к ним доступ в файле jsp, используя <c:forEach>