gpt4 book ai didi

java - 如果数据存在或如果数据不存在如何检索单行 - hibernate

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:48 25 4
gpt4 key购买 nike

这是我在 java 中的实现,如果数据存在则检索单行,如果不存在数据则检索 null 或空。

public SalesForecast isSalesForecastUser(String mobile) throws LookupException {
SalesForecast salesForecast = null;
Session session = null;
try {
session = hibernateTemplate.getSessionFactory().openSession();
salesForecast = (SalesForecast) session.createQuery(" from SalesForecast salesforcast where salesforcast.ppUserMobile ='" + mobile + "' ").list().get(0);
} catch (NullPointerException n) {
n.printStackTrace();
} catch (IndexOutOfBoundsException n) {
n.printStackTrace();
} finally {
session.close();
}

return salesForecast;
}

如果有单行或多行,这工作正常,但当没有匹配的行时抛出此异常:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

最佳答案

你可以这样试试

    Query query = session.createQuery(" from SalesForecast salesforcast where
salesforcast.ppUserMobile ='" + mobile + "' ");
List results = query.list();
if(results!=null){
return results.get(0);
} else{
return null;
}

在你当前的代码中

 salesForecast = (SalesForecast) session.createQuery(" from SalesForecast 
salesforcast where salesforcast.ppUserMobile ='" + mobile + "' ").list()
// list will null if no result there, So you will get NullPoiterException

关于java - 如果数据存在或如果数据不存在如何检索单行 - hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com