1

我有一个使用带有复合键的数据库的 web 应用程序。我需要创建一个 API,它将接受复合键的参数,其中每个参数都可以为空。(例如,如果复合键的所有参数都设置为 null 并且查询已完成,那么它应该只返回 db 中的所有行)我使用了 QueryByExampleExeccutor 但它一直抛出空指针异常。

下面是表示 1 行 DB 的模型

public class Row
{
 @EmbeddedId
 private RowKey rowkey;

 @Column
 private String rowAttribute;

 //getters and setters for rowkey and rowAttribute

}

下面是表示 RowKey 的模型

public class RowKey
{

 @Column(name = "rowBlock")
 private String rowBlock;
 @Column(name = "rowSection")
 private String rowSection;
 //getters and setters for above fields
}

我通过扩展我的存储库(或 DAO)来使用 QueryByExampleExecutor

public interface RowRepo extends CrudRepository<Row, RowKey>,  QueryByExampleExecutor<Row> {


}

在我的服务层中,我使用以下语句调用 repo 方法以从 DB 返回匹配行的列表

 public List<Row> getRowRangeQuery(rowBlock,rowSection,rowAttribute)
 {
      Row row = new Row(new RowKey(rowBlock,rowSection),rowAttribute);
      List<Row> Result = (List<Row>)getRowRepository().findAll(Example.of(row));
      return Result;
 }

我得到一个 InvocationTargetException,它在展开时会在 rowSection 处显示一个空指针异常。

4

0 回答 0