やりたいこと
/home画面に、IndexMasterDtoを取得し、表示したいです。
###### エラー事象
下記のようなエラーが発生しました。解決方法が分からないです。
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
at xxxxxxxxx.controller.HomeController.home(HomeController.java:34) ~[classes/:na]
⇒HomeController.java(下記ソース参照)の
IndexMasterDto IndexMasterDto = idxMstService.findMasterByCategoryCode("C001", "1");
で、nullが発生します。
ソース
・IndexMaster.java
/** * エンティティクラス. * */ @Entity @IdClass(IndexMasterPk.class) @Table(name = "indexMaster") @Data public class IndexMaster { @Id @Column(name = "category_code") private String categoryCode; @Column(name = "category_name") private String categoryName; @Id @Column(name = "code") private String masterCode; @Column(name = "name") private String masterName; @Column(name = "sort_order") private int sortOrder; @Column(name = "del_flg") private int delFlg; @Column(name = "setting1") private String masterSet1; @Column(name = "setting2") private String masterSet2; @Column(name = "setting3") private String masterSet3; @Column(name = "setting4") private String masterSet4; @Column(name = "setting5") private String masterSet5; public IndexMaster(String categoryCode, String categoryName, String masterCode, String masterName, int sortOrder, int delFlg, String masterSet1, String masterSet2, String masterSet3, String masterSet4, String masterSet5) { this.categoryCode = categoryCode; this.categoryName = categoryName; this.masterCode = masterCode; this.masterName = masterName; this.sortOrder = sortOrder; this.delFlg = delFlg; this.masterSet1 = masterSet1; this.masterSet2 = masterSet2; this.masterSet3 = masterSet3; this.masterSet4 = masterSet4; this.masterSet5 = masterSet5; } @Override public String toString() { return "indexMaster{" + "categoryCode=" + categoryCode + ", categoryName=" + categoryName + ", code=" + masterCode + ", name=" + masterName + '}'; } public IndexMaster() {} }
・IndexMasterPk.java
/** * エンティティ主キークラス. * */ @Data @Embeddable public class IndexMasterPk implements Serializable { @Column(name = "category_code") private String categoryCode; @Column(name = "code") private String masterCode; }
・IndexMasterDto.java
/** * DTOクラス. * */ @Value public class IndexMasterDto { private String categoryCode; private String categoryName; private String masterCode; private String masterName; private Long sortOrder; private Long delFlg; private String setting1; private String setting2; private String setting3; private String setting4; private String setting5; }
・IndexMasterRepository.java
/** * レポジトリクラス. * */ @Repository public interface IndexMasterRepository extends JpaRepository<IndexMaster, String> { @Query("SELECT mst FROM IndexMaster mst WHERE mst.categoryCode = :categoryCode AND mst.masterCode = :masterCode") IndexMasterDto findMasterByCategoryCode(@Param("categoryCode") String categoryCode, @Param("masterCode") String masterCode); }
・IndexMasterService.java
/** * サービスクラス. * */ public interface IndexMasterService { IndexMasterDto findMasterByCategoryCode(String categoryCode, String masterCode); }
・IndexMasterServiceImpl.java
/** * クラス. * */ @Service public class IndexMasterServiceImpl implements IndexMasterService { @Autowired private IndexMasterRepository repository; /** * 取得. * * @param categoryCode カテゴリコード * @param masterCode コード * @return カテゴリ内容 */ @Cacheable("IndexMaster") @Override public IndexMasterDto findMasterByCategoryCode(String categoryCode, String masterCode) { return repository.findMasterByCategoryCode(categoryCode, masterCode); } }
・HomeController.java
/** * ホーム画面コントローラクラス. * */ @Controller @Slf4j public class HomeController { @Autowired private IndexMasterService idxMstService; @GetMapping("/home") public String home(Model model) { IndexMasterDto IndexMasterDto = idxMstService.findMasterByCategoryCode("C001", "1"); model.addAttribute("lst", IndexMasterDto); return "home"; } }
参考にデータは、
INSERT INTO indexMaster(category_code,category_name,code,name,sort_order,del_flg,setting1,setting2,setting3,setting4,setting5) VALUES ('C001','グループ種別','1','パブリック',10,0,'set1','set2','set3','set4','set5');
環境
Spring boot 2.5.2
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。