如何查询具有复合键的数据库,该复合键接受Spring JPA中复合键部分为空的查询?

时间:2017-10-06 06:32:19

标签: spring jpa spring-boot query-by-example

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

以下是指示DB的1行的模型

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
}

我正在使用QueryByExampleExecutor扩展我的存储库(或DAO)作为

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中显示空指针Exception。

0 个答案:

没有答案