首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回多个值

返回多个值
EN

Stack Overflow用户
提问于 2016-02-25 11:19:32
回答 1查看 2.1K关注 0票数 0

我想在执行查询后从函数中返回两个值,即结果和消息。

代码语言:javascript
复制
@Repository
@Transactional(value = "myTransactionManager")
public class UserFunctionsDAOImpl implements UserFunctionsDAO {

    @Autowired
    private SessionFactory sessionFactory;

    public void setSessionFactory(SessionFactory sessionFactory)
    {
        this.sessionFactory = sessionFactory;
    }

    @Override
    public List<Object[]> registerUser(Users user) {
        // TODO Auto-generated method stub
        ReturnData returnData = new ReturnData(); 

        Query query = this.sessionFactory.getCurrentSession().createQuery("SELECT COUNT(*) FROM Users WHERE emailID = :email_ID OR mobileNo = :mobile_No");
        query.setString("email_ID", user.getEmailID());
        query.setString("mobile_No", user.getMobileNo());

        if(((long)query.uniqueResult()) > 0)
        {
            returnData.setResult(false);
            returnData.setMessage("Email or Mobile number already exists");
            return (List<Object[]>);
        }
        else
        {
            Query query = this.sessionFactory.getCurrentSession().createSQLQuery("");
            query.executeUpdate();
            returnData.setResult(true);
            returnData.setMessage("User Registered Successfully");
            return (List<Object>[])returnData;
        }
    }

}

public class ReturnData
{
    Boolean result;
    String message;

    //getters and setters
}

错误

代码语言:javascript
复制
java.lang.ClassCastException: com.pir.model.ReturnData cannot be cast to java.util.List

如何解决这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-25 11:24:48

您正在返回不能转换为该方法的返回类型的对象。

如下所示重写方法:

代码语言:javascript
复制
@Override
    public ReturnData registerUser(Users user) {
      // TODO Auto-generated method stub
    ReturnData returnData = new ReturnData(); 

    Query query = this.sessionFactory.getCurrentSession().createQuery("SELECT COUNT(*) FROM Users WHERE emailID = :email_ID OR mobileNo = :mobile_No");
    query.setString("email_ID", user.getEmailID());
    query.setString("mobile_No", user.getMobileNo());

    if(((long)query.uniqueResult()) > 0)
    {
        returnData.setResult(false);
        returnData.setMessage("Email or Mobile number already exists");
        return returnData;
    }
    else
    {
        Query query =       this.sessionFactory.getCurrentSession().createSQLQuery("");
        query.executeUpdate();
        returnData.setResult(true);
        returnData.setMessage("User Registered Successfully");
        return returnData;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35625804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档