1

複合キーを持つデータベースを使用する webapp があります。各パラメーターが null になる複合キーのパラメーターを受け入れる API を作成する必要があります。(たとえば、複合キーのすべてのパラメーターが null として設定され、クエリが実行された場合、db のすべての行を返す必要があります) QueryByExampleExeccutor を使用しましたが、null ポインター例外をスローし続けます。

以下は、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
}

リポジトリ(またはDAO)を次のように拡張して、QueryByExampleExecutorを使用しています

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


}

私のサービスレイヤーでは、次のステートメントを使用してレポメソッドを呼び出し、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;
 }

展開すると、rowSection でヌル ポインター例外が明らかになる InvocationTargetException を取得します。

4

0 に答える 0