java - 在 Spring Boot 中使用休眠的 JPA 未处理查询抛出空指针异常
问题描述
我使用 get hibernate 来获取数据。当我使用返回不查询结果的特定参数调用数据时,它显示以下错误
java.lang.NullPointerException
at com.rms.service.impl.ProductsServiceImpl.getAppProductItems(ProductsServiceImpl.java:143)
at com.rms.controller.RmsMobileAppController.getAppProductItems(RmsMobileAppController.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62).......
这是我的实体
@Entity
@Table(name = "RmsOptions")
public class RmsOptionsEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private String hardCode;
private String softCode;
private String codeDes;
private String status;
// getter setter
}
这是我的存储库
public interface RmsOptionsRepo extends JpaRepository<RmsOptionsEntity, Long>{
@Query(" FROM RmsOptionsEntity WHERE hardCode = ?1 AND softCode =?2 AND status = 1")
RmsOptionsEntity getcodeDes(String hardCode,String softcord);
}
我从ProductsServiceImpl类调用,这是我的服务类。如果参数值匹配它工作正常。当发现参数值不匹配时,它会显示错误... 这是我的服务
@Service
public class ProductsServiceImpl implements ProductsService {
@Autowired
private ProductCategoriesRepo productCategoriesRepo;
@Autowired
private RmsOptionsRepo rmsOptionsRepo;
@Override
public List<ProductAppItemsModel> getAppProductItems(String restaurantId, String restaurantBranchId) {
List<ProductAppItemsModel> list = new ArrayList<>();
List<ProductCategoriesInfo> productCatgoriesList = productCategoriesRepo.getProductCatgoriesList(restaurantId, restaurantBranchId);
try {
for (ProductCategoriesInfo categoriesInfo:productCatgoriesList){
List<ProductsInfo> products = productsRepo.getProducts(restaurantId, restaurantBranchId, categoriesInfo.getProductCategoryId());
}
}catch (Exception e){
e.printStackTrace();
}
return list;
}
}
如何处理空指针异常。我现在才用try...catch。请建议我..
解决方案
如果您使用 jpaRepo
它更好的方法来创建方法
公共接口 RmsOptionsRepo 扩展 JpaRepository<RmsOptionsEntity, Long>{
@Query("SELECT * FROM RmsOptionsEntity WHERE hardCode = ?1 AND softCode =?2 AND status = 1")
RmsOptionsEntity findCodeDes(String hardCode,String softcord);
}
推荐阅读
- javascript - 有没有办法从执行函数的范围中获取变量?
- html - 我正在尝试将我的 HTML 导航栏固定到顶部,但如果我这样做,横幅的某些部分会被隐藏。我该怎么办?
- python - AND 与 OR 与熊猫中的日期时间
- nosql - 不断增长的 NoSQL 集群中的恒定复制因子
- ruby - 带有整数的Ruby while循环
- java - 将子对象分配给父对象
- python - 将两个 pandas 列合并为索引,以列名作为值创建新列
- c# - 方法在移动到下一个之前不会完全执行
- javascript - 掷骰子(随机数)并在桌子上移动
- java - 如何在 Android Studio 中实现高分并在活动之间转移?