我有一个使用带复合键的数据库的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。