java - Spring Hibernate 获取选中的列

标签 java mysql spring hibernate spring-mvc

我正在尝试使用 hibernate 获取一些特定的列,但此查询总是失败。

@Override
public Users findByEmail(String emailID) {
    // TODO Auto-generated method stub
    try{

        List<Users> users = new ArrayList<Users>();

        users = this.sessionFactory.getCurrentSession().createQuery("SELECT userID, firstName, lastName, imageURL, password, emailID, enabled FROM Users WHERE emailID = :email_ID")
                .setParameter("email_ID", emailID).list();

        if(users.size() > 0)
            return (Users)users.get(0);
        else
            return null;
    }
    catch(Exception exc)
    {
        log.error(exc.getMessage());
        return null;
    }
}

这个查询总是失败,所以我使用下面的查询

    @Override
public Users findByEmail(String emailID) {
    // TODO Auto-generated method stub
    try{

        List<Users> users = new ArrayList<Users>();

        users = this.sessionFactory.getCurrentSession().createQuery("FROM Users WHERE emailID = :email_ID")
                .setParameter("email_ID", emailID).list();

        if(users.size() > 0)
            return (Users)users.get(0);
        else
            return null;
    }
    catch(Exception exc)
    {
        log.error(exc.getMessage());
        return null;
    }
}

如何使用 hibernate 只获取特定的列而不是获取 20 多列?

最佳答案

你可以尝试使用结果转换器

List<User> users = session
.createQuery(
"SELECT userID as userID, firstName as firstName FROM Users WHERE emailID = :email_ID")
.setParameter("email_ID", emailID)
.setResultTransformer(new AliasToBeanResultTransformer(User.class)).list();

您需要指定投影别名:firstName as firstName,但您可以不指定。

关于java - Spring Hibernate 获取选中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35811595/

相关文章:

java - JFileChooser 自定义 - 将渐变绘制设置为 JFilechooser

java - 如何从字符串中分离出多个不同的单词(Java)

MySql:如何使用动态选择语句创建临时表?

java - 具有匿名内部类的 Spring AOP

spring - 将 Spring Security 添加到现有的 Spring Web App(使用 JavaConfig)

java - 如何通过按键盘上的 DELETE 删除 JTable 中的行

java - Spring:如何从JPA中的两个表中获取数据

PHP 相加两个时间变量

java - Spring /速度/Maven/Tomcat - "requested resource is not available"

java - JTextArea吞并JButton Action 监听器Java