質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

13298閲覧

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exceptionエラーが発生しました。

lionpapa7

総合スコア3

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2021/07/18 14:35

やりたいこと

/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

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

@QueryのSQLが間違ったみたいです。
直接SQLを書いて解決しました。

投稿2021/07/18 17:14

lionpapa7

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問