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

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

新規登録して質問してみよう
ただいま回答率
87.20%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

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

解決済

spring jpaで検索するとNullPointerExceptionが発生する。

okuda03
okuda03

総合スコア5

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

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

1回答

0評価

0クリップ

4284閲覧

投稿2020/04/10 07:40

編集2020/04/10 08:39

前提・実現したいこと

javaを使用して、
spring boot + jpa + PostgreSQLで勉強のため、DB検索結果を
一覧画面表示するWebアプリを作っています。
JpaでDB検索を行う箇所(findAll()部分)でNullPointerExceptionが発生してしまいます。
対処法を教えていただきたいです。

発生している問題・エラーメッセージ

2020-04-10 15:24:24.937 INFO 14544 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-04-10 15:24:24.942 INFO 14544 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2020-04-10 15:24:24.952 INFO 14544 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 10 ms
2020-04-10 15:24:34.999 ERROR 14544 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : 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 com.example.MyApp2.service.searchService.bookFind(searchService.java:25) ~[classes/:na]
at com.example.MyApp2.controller.testController.searchExec(testController.java:48) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_202]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_202]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.2.2.RELEASE.jar:5.2.2.RELEASE]
at

該当のソースコード

java

<searchService.java> package com.example.MyApp2.service; import java.util.List; import javax.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.MyApp2.entity.tblBook; import com.example.MyApp2.repository.repoBook; @Service @Transactional public class searchService { @Autowired repoBook rps; public List<tblBook> bookFind() { //検索実行 List<tblBook> bkList = rps.findAll(); return bkList; } }

Java

<testController.java> package com.example.MyApp2.controller; import java.util.List; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import com.example.MyApp2.entity.tblBook; import com.example.MyApp2.service.searchService; @Controller public class testController { // //初期表示時 // @RequestMapping("/initShow") public String init(Model model) { model.addAttribute("name","okuda aaaabbbb"); model.addAttribute("mail", "xxxx@yahoo.co.jp"); return "init"; } // //検索実行ボタン押下時 // @RequestMapping(value="/initShow",params="searchBtn" ,method=RequestMethod.POST) public String searchExec(@RequestParam("searchWord") String reqSearchWord,Model model) { model.addAttribute("reqSearchWord", reqSearchWord); //bookModel bkModel = new bookModel(); searchService srv = new searchService(); //検索結果取得する //List<bookModel> bookList = new ArrayList<bookModel>(); List<tblBook> bookList = srv.bookFind(); // List<bookModel> bookList = srv.bookFind(); //画面にリストを返す model.addAttribute("bookList", bookList); return "init"; } }

Java

<tblBook.java エンティティ> package com.example.MyApp2.entity; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import lombok.Data; @Entity @Data @Table(name="t_mybook") public class tblBook implements Serializable{ private static final long serialVersionUID = 1L; //ID @Id private Integer id; @Column(name="bookname") private String bookname; }

Java

<repoBook.java リポジトリ> package com.example.MyApp2.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.example.MyApp2.entity.tblBook; // //リポジトリ // @Repository public interface repoBook extends JpaRepository<tblBook,Integer>{ }

Java

MyApp2Application.java> package com.example.MyApp2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan public class MyApp2Application { public static void main(String[] args) { SpringApplication.run(MyApp2Application.class, args); } }

properties

<application.properties> spring.jpa.database=POSTGRESQL spring.datasource.url=jdbc:postgresql://localhost:5432/mydb spring.datasource.username=postgres spring.datasource.password=iwtawya7 spring.datasource.driver-class-name=org.postgresql.Driver spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

<構成>
イメージ説明

試したこと

・@SpringBootApplicationアノテーションを記載しているMyApp2Application.javaに
@ComponentScanアノテーションを追加。→変化なし。

・各パッケージ名を変更
変更前:com.example.demo
変更後:com.example.MyApp2
→変化なし。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

encho

2020/04/10 07:55

コードはクラスごとに ```Java ``` 以上のような記号で括るとみやすくなりますので質問編集からコード部分を書き直してみてください。
encho

2020/04/10 07:57

エラーに関しては at com.example.MyApp2.service.searchService.bookFind(searchService.java:25) ~[classes/:na] と出ているのでsearchServiceの25行目で問題発生していると思うのですが確認してみましたか?
encho

2020/04/10 08:43

あとはDBでデータが入っているかの確認はできていますか?
okuda03

2020/04/10 08:44

ご指摘ありがとうございます。 クラスごとにタグで囲みました。見やすくなりました。 searchServiceの25行目は確認済で、該当行のrps.findAll()でのNullPointerExceptionの対処方法がわからず、質問させて頂いております。
okuda03

2020/04/10 08:51

以下の3件は登録済です。。 mydb=# select * from t_mybook; id | bookname ----+------------ 1 | DbMagazine 2 | Sports 3 | Movie
asahina1979

2020/04/10 09:34

組長、newしてるからだぞ?(新ちゃん風に

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

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