Как получить значения нескольких столбцов с помощью гибернации

#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:

У вас есть несколько вариантов:

  1. возвращаемая сущность

    выберите social из Social social, где social.socialId=1

  2. создайте новый DTO, а затем

    выберите новый SocialDto(social.подписчики, социальные.твиты) из Social social, где social.socialId = 1

  3. сопоставьте его со списком

    Запрос q = session.CreateQuery(«выберите social.подписчики, социальные.твиты из социальных социальных, где social.socialId = 1»);

    Список сотрудников = (Список)q.list();

Комментарии:

1. я сохраняю значения обоих столбцов в списке, но я не могу получить к ним доступ в файле jsp, используя <c:forEach>