@matcha0931

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Spring Bootチュートリアルについての問題の解決方法を教えてください。

当方Spring Boot初学者です。

誠に恐縮ですが、Spring Bootチュートリアルについて現在抱えている問題がどのようにしたら解決できるのかご教授頂きたいと思います。

質問の内容: 上記のページで、3-3リポジトリの作成で、Eclipse上で行に×エラーマークがでます。

手順通りにコードを書いておりますが、進めず困っております。

どうしてなのかがわかりませんが、pom[dot]xmlのdependencyの内容の
javaxからJakartaに変更した場合に、ユーザーリポジトリ(インターフェース)を実装する場合、内容をどの様に変更しなければいけないのでしょうか。

1. package com[dot]example[dot]demo;
2. 
3. “×”import com[dot]example[dot]demo[dot]User;
4. Import org[dot]springframework[dot]data[dot]jpa[dot]repository[dot]JpaRepository;
5. 
6. “×”public interface UserRepository extends JpaRepository<User, Long>{
6. }

この様に×の部分、記述するとエディター左横の行に×マークがでます。

どなたか、ご教授頂けると幸いです。

自力で行ったこと: ちなみにpom[dot]xmlの内容をjakartaに変更したのち、このチュートリアルの章の”User[dot]java”(こちらは普通のクラス)でのimport文の横の続きに記載されているjavaxをjakartaへ変更したらUser[dot]javaの警告メッセージは消えました。

ですので、何かしら、pom[dot]xmlの記述を変更したことで出た問題なのでしょうか。

上記サイトは質問が出来ないそうなので、こちらの知恵袋で質問をさせて頂きたいと思います。

新規Springスターター・プロジェクト
名前は: demo
タイプはMaven
パッケージングはJar
Javaバージョンは21
言語はJava

Spring Bootバージョンは3[dot]1[dot]5
使用するツールはSpring Boot DevTools, Spring Web, Thymeleaf, H2 Database, Spring Data JPA

Mac M2(OSのバージョンは現行最新バージョン)
Eclipseのバージョンは4[dot]29[dot]0

です。

お忙しいところ、お手数おかけしますが、よろしくお願い申し上げます。

0 likes

1Answer

javaxをjakartaへ変更したらUser.javaの警告メッセージは消えました。

User.javaの警告が消えた後も、UserRepository.java
import com.example.demo.User;この行に×マークが出ているのでしょうか?

エラーの意味を示すメッセージ等は出てないのでしょうか?
×にマウスオーバーしても?

1Like

Comments

  1. @matcha0931

    Questioner

    nak435 さま。
    お忙しいところご返答ありがとうございました。

    【修正があります】大変失礼しました。
    ×が出ている行は3行目ではなく、
    “4行目”のImport org[dot]springframework[dot]data[dot]jpa[dot]repository[dot]JpaRepository;
    で×がでているのと、6行目でございます。
    “×”public interface UserRepository extends JpaRepository{
    6. }

    4行目のマウスオーバーの結果メッセージは、
    importされたorg[dot]springframework[dot]dataは見つかりません。

    と、6行目では
    JpaRepositoryを型に変換できませんというマウスオーバー時の×メッセージでございます。

    大変お手数おかけいたしますがよろしくお願い申し上げます。

  2. 4行目のimportされたorg.springframework.dataは見つかりませんですが、
    ↓pom.xmlの内容を確認してください

    pom.xml
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    以下省略
    

    おそらく、6行目のエラーは4行目に引きずられて出ているのだと思います。

  3. @matcha0931

    Questioner

    nak435 さま。
    お世話になっております。

    ご指摘頂いた通りに修正を行いましたが、6行目のエラーですが問題の解決には至りませんでした。

    試行錯誤して自力での解決に向けて行動しておりますが、かなり苦戦しております。。

    一点お聞きしたいのが、もうこの現在の時点では、上記のサイトの手順通りに行ってもこの第3章の入門はjavaxからjakarta?に変更された為、通用しないということになったのでしょうか。

    本当に未熟で申し訳ございません。

  4. ご指摘頂いた通りに修正を行いましたが、6行目のエラーですが問題の解決には至りませんでした。

    確認ですが、pom.xmlのどこを変更しましたか? 変更前を覚えていますか?

    org.springframework.dataが見つからない」というエラーのため、設定のどこかに問題があると思います。


    もうこの現在の時点では、上記のサイトの手順通りに行ってもこの第3章の入門はjavaxからjakarta?に変更された為、通用しないということになったのでしょうか。

    技術要素については、そこは関係なく実装できるはずと思います。
    設定や手順については、相応に変更する必要があるかも知れませんが、すみませんが、即答できるほどの知見がありません。

    下記検索にて見つけられるかも?

  5. @matcha0931

    Questioner

    nak435 さま。
    お世話になっております。

    親切にご返答くださり誠にありがとうございます。

    ご指摘頂いた箇所を以下に記載します。

    【プロジェクト名/pom[dot]xml】ファイル内で、

    <dependencies>
    

    の直下の

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    

    を、以下の様に”上から丸ごと被せ書き換えました”。
    【変更後】

    <dependency>
    	<groupId>jakarta.persistence</groupId>
    	<artifactId>jakarta.persistence-api</artifactId>	<version>3.1.0</version>
    </dependency>
    

    厳密に言うと、このSpring Boot入門講座のdemo/pom[dot]xmlの20から23行目部分を、Jakartaの記述で、20から24行目に記述量分を被せ上書きしました。

    わかりやすく伝えられる様、画像も添付いたします。

    いかがでしょうか。

    大変お手数をおかけしますが、
    よろしくお願い申し上げます。トラブル-Java.jpg

  6. pom.xmlの下の方が見えないですが、下記内容が追加されてますでしょうか?
    spring-boot-starter-data-jpaが見当たらない)

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
    
  7. @matcha0931

    Questioner

    nak435 さま。
    お世話になっております。

    ご返答くださりありがとうございます。

    ご指摘頂いた箇所のスクリーンショットを以下に画像ファイルとして添付致します。問題1.jpg

  8. 変わらずimportされたorg.springframework.dataは見つかりません。エラーのままでしょうか?

    また、pom.xmlの43行目の「黄色▲!」にマウスオーバーすると、何かエラーメッセージは出ませんか?

    差し支えなければ、pom.xmlのコードを全行をコードブロックにして掲示してもらえませんか。

  9. @matcha0931

    Questioner

    nak435 さま。
    お世話になっております。

    早急にご対応くださりありがとうございます。

    とても感謝しております。

    pom[dot]xmlの記述は以下の通りです。
    コードブロックというものがよくわかっておらず、間違っていましたら申し訳ございません。

    43行目の警告メッセージはDuplicating managed version 3[dot]1[dot]0 for jakarta persistence-apiです。

    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>3.2.0</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    	<groupId>com.example</groupId>
    	<artifactId>demo</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<name>demo</name>
    	<description>Demo project for Spring Boot</description>
    	<properties>
    		<java.version>21</java.version>
    	</properties>
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-data-jpa</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-thymeleaf</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-devtools</artifactId>
    			<scope>runtime</scope>
    			<optional>true</optional>
    		</dependency>
    		
    		<dependency>
    		      <groupId>jakarta.persistence</groupId>
    		      <artifactId>jakarta.persistence-api</artifactId>
    		      <version>3.1.0</version>
    		</dependency>
    
    		<dependency>
    		    <groupId>org.springframework.boot</groupId>
    		    <artifactId>spring-boot-starter-data-jpa</artifactId>
    		</dependency>
    		
    		<dependency>
    		    <groupId>com.h2database</groupId>
    		    <artifactId>h2</artifactId>
    		    <scope>runtime</scope>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    		</dependency>
    	</dependencies>
    
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
    
    </project>
    

    以下に添付させていただいた、pom[dot]xmlの記述でUserRepository[dot]javaを作成すると、4行目のマウスオーバーの結果メッセージの、importされたorg[dot]springframework[dot]dataは見つかりません。が”消え”ます。

    残るエラーは6行目、UserRepository[dot]javaのpublic interface UserRepository extends JpaRepository{
    }で以下の画像の様に×印が出ます。

    よろしくお願い申し上げます。

  10. @matcha0931

    Questioner

    上記添付画像はこちらでございます。問題2.jpg

  11. Expected Domain ID type is 'int'

    エラーメッセージに従い、Longをintに変更したらどうなりますか。

    - public interface UserRepository extends JpaRepository<User, Long>{
    + public interface UserRepository extends JpaRepository<User, int>{
    

    追伸;

    pom.xmlですが、
    下記2箇所は内容が重複しています。悪さは無いと思いますが、一方を削除してもよいと思います。

    pox.xml.png

  12. @matcha0931

    Questioner

    ご指摘頂いた箇所、変更させて頂きましたが、この様に×印で警告マークがでます。

    Nakさまの環境はVScodeでしょうか。
    もしVScodeで問題が起こらないのであれば、VScodeで実行してみようとも考えているのですがVScodeでも同様にエラーが出ますでしょうか。

    自力で解決しようとすればするほど混乱してしまう為、Qiitaさんでnakさんの様な方にご教授してくださるのはとても感謝しております。

    画像を添付させて頂きます。

    問題3.jpg

  13. intを型に変換できませんとあるので、intIntegerにしてみてください。
    (前回のエラー内容に従っただけなのに、またエラーとは。。。)


    Nakさまの環境はVScodeでしょうか。

    ごめんなさい。実は机上及びネットの情報だけで、動作環境は作っていません。

    当Q&Aと同じ環境を作ろうと考えたのですが、Eclipseだったのでやめました(今さらEclipseを入れるメリットがないので)。
    どうせ作るなら、動作環境は @matcha0931 さん同じでないと意味が無いので、VSCode版もあるのは知っていたのですが、それも入れていません。

    VSCode版に変えても、Spring Bootチュートリアルを完遂したいということであれば、私もVSCode版の環境を作るのは、やぶさかではありません。M1 Macですが。

Your answer might help someone💌