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

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

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

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

Spring Boot

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

Q&A

解決済

1回答

12421閲覧

springのspring data jpaの利用方法について教えてください。

UekiKouji

総合スコア121

Java

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

Spring Boot

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

0グッド

1クリップ

投稿2016/08/17 06:08

編集2016/08/18 02:03

いつもお世話になります。

Spring Data JPAを勉強しようと思い、

http://kei0310.info/?p=399

の参考にして、eclipse4.5でstarterでプロジェクトをWebとPostgreSQLを選択して作成しました。(Boot project)
pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>example</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>example</name> <description>example project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> --> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- Spring Data JPA --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

com.example.ExampleApplication <= こちらがメインの実行ファイルになります。

package com.example; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import com.example.entity.TestData; import com.example.repository.TestDataRepository; @RestController @EnableAutoConfiguration @SpringBootApplication public class ExampleApplication { @Autowired TestDataRepository repository; @RequestMapping("/") String home(){ return "Hello World!!"; } @RequestMapping("/getData") List<TestData> testData(Model model){ // DBからデータ取得 List<TestData> list = repository.findAll(); return list; } @RequestMapping("/getDataForHtml") ModelAndView testData(ModelAndView mav){ // DBからデータ取得 List<TestData> list = repository.findAll(); // テンプレート名指定 mav.setViewName("testThymeleaf"); // 動的項目設定 mav.addObject("messages", list); return mav; } public static void main(String[] args) { SpringApplication.run(ExampleApplication.class, args); } }

com.example.entity.TestData

package com.example.entity; import javax.persistence.Entity; import javax.persistence.Id; @Entity(name="item_master") public class TestData { @Id private Long id; private Long value; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Long getValue() { return value; } public void setValue(Long value) { this.value = value; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

application.properties

spring.datasource.url=jdbc:postgresql://192.168.0.2:5432/postgres spring.datasource.username=postgres spring.datasource.password=postgres spring.datasource.driverClassName=org.postgresql.Driver

com.example.repository.TestDataRepository

package com.example.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.example.entity.TestData; @Repository public interface TestDataRepository extends JpaRepository<TestData , Long>{ <= ここで JpaRepositoryのところが赤線になり、型 org.springframework.data.repository.query.QueryByExampleExecutor を解決できません。必要な .class ファイルから間接的に参照されています と表示されます。 }

この状態でeclipse 実行 maven installを行うとビルドエラーになります。
なにかJpaRepositoryに設定がいるのでしょうか。
設定の方法をいろいろ試してみましたが、うまくいきません。
ご教授をお願いします。

ビルドをすると以下のようなエラーがでます。

java.lang.NoClassDefFoundError: org/springframework/data/repository/PagingAndSortingRepository

PagingAndSortingRepositoryのメソッドがないように思うのですが、これをどのようにインストールをしたら
よいのか教えてください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

PagingAndSortingRepositoryはspring-data-commonsというライブラリの中に入っていて、その記述がpomにないのが原因です。

直にspring-data-commonsの依存関係を追加しても動作するかもしれませんが、
spring-boot-starter-data-jpaを依存関係に追加すればそれは不要になると思います。

xml

1... 2 3<!-- コメントアウトを解除する --> 4<dependency> 5 <groupId>org.springframework.boot</groupId> 6 <artifactId>spring-boot-starter-data-jpa</artifactId> 7</dependency> 8 9... 10 11<!-- 削除する --> 12<!-- Spring Data JPA --> 13<dependency> 14 <groupId>org.springframework.data</groupId> 15 <artifactId>spring-data-jpa</artifactId> 16</dependency> 17

投稿2016/08/19 03:44

YukiYoshida

総合スコア93

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

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

UekiKouji

2016/08/19 04:16

ご回答ありがとうございます。 うまくいきました。
UekiKouji

2016/08/19 04:17 編集

助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問