我尝试使DAO在数据库表中搜索一个项目所需的内容。我是Hybris的新手,所以我不知道到底是哪里出了问题(查询或我的垃圾代码)。那就是出现在cmd中的错误。
严重:路径为[]的Servlet [DispatcherServlet]的Servlet.service()抛出异常[请求处理失败;嵌套异常是de.hybris.platform.servicelayer.search.exceptions.FlexibleSearchException:SQL搜索错误-启用属性'flexible.search.exception.show.query.details'了解更多详细信息],其根本原因是java.sql.SQLException: getLong()的值无效
那是我的DAO类的实现
@Component(value = "arbRedirectHttpTypeDao")
public class ArbRedirectHttpTypeDaoImpl implements ArbRedirectHttpTypeDao {
private static final Logger LOG = Logger.getLogger(ArbRedirectHttpTypeDaoImpl.class);
@Autowired
private FlexibleSearchService flexibleSearchService;
public FlexibleSearchService getFlexibleSearchService() {
return flexibleSearchService;
}
public void setFlexibleSearchService(FlexibleSearchService flexibleSearchService) {
this.flexibleSearchService = flexibleSearchService;
}
@Override
public ArbRedirectHttpTypeModel findNewUrlByOldUrl(String oldUrl) {
final String query = "SELECT {"+ ArbRedirectHttpTypeModel.NEWURL +"}"
+ " FROM {"+ ArbRedirectHttpTypeModel._TYPECODE +"} WHERE {"
+ ArbRedirectHttpTypeModel.OLDURL +"}=?oldUrl";
final FlexibleSearchQuery flexibleSearchQuery = new FlexibleSearchQuery(query);
flexibleSearchQuery.addQueryParameter("oldUrl", oldUrl);
final List<ArbRedirectHttpTypeModel> locationsByCode = flexibleSearchService
.<ArbRedirectHttpTypeModel> search(flexibleSearchQuery)
.getResult();
LOG.info("-------------------------------------" + locationsByCode.get(0));
if (locationsByCode != null && !locationsByCode.isEmpty())
{
return locationsByCode.get(0);
}
else
{
return null;
}
}
}
在这里我尝试称呼它
@Resource
private ArbRedirectHttpTypeDao arbRedirectHttpTypeDao;
ArbRedirectHttpTypeModel arbRedirectHttpTypeModel = arbRedirectHttpTypeDao.findNewUrlByOldUrl("/Aapuvdc");
使用“ SELECT {” + ArbRedirectHttpTypeModel.PK +“}”。它将返回对象,您可以通过getter获取所有属性
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句