如何使用hibernate获取多个列值

时间:2016-09-30 08:15:05

标签: java mysql spring hibernate 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";
    }

DATABASE

ID - socialId
column1 - followers
column2- tweets

JSP文件

<tr>

                            <td>

                                <c:forEach var="in" items="${followers}">

                                         ${in.tweets}

                                </c:forEach>

                            </td>               
                        </tr>

我需要从数据保存在DB中的同一社交表中获取假设的关注者和“推文”。那么我应该使用什么Hibernate Query?如何在我的控制器类中访问这两条推文的值?

1 个答案:

答案 0 :(得分:-1)

您有几种选择:

  1. 返回实体

    选择社交社交社交,其中social.socialId = 1

  2. 创建新的DTO然后

    选择新的SocialDto(social.followers,social.tweets)来自社交社交,其中social.socialId = 1

  3. 将其映射到列表

    查询q = session.createQuery(“select social.followers,social.tweets From Social social where social.socialId = 1”);

    列出员工=(列表)q.list();