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

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

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

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

Q&A

解決済

1回答

2924閲覧

Javaでレポジトリ作成(JpaRepository)で型に解決ができないと表示されてしまう

milkcoffee

総合スコア14

Java

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

0グッド

0クリップ

投稿2022/04/23 02:29

編集2022/05/06 03:50

前提

Javaで基本的なWebページを作っています(Eclipse使用)。
レポジトリの作成でエラーが発生してしまっています。
エラー箇所は、InquiryRepository3.javaInquiryForm3の部分です。

実現したいこと

レポジトリの作成でのエラーを解消したい

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

型に解決できません

該当のソースコード

(RootController.java)

Java

1package com.example.demo.controllers; 2 3import org.springframework.beans.factory.annotation.Autowired; 4import org.springframework.stereotype.Controller; 5import org.springframework.ui.Model; 6import org.springframework.validation.BindingResult; 7import org.springframework.validation.annotation.Validated; 8import org.springframework.web.bind.annotation.GetMapping; 9import org.springframework.web.bind.annotation.PostMapping; 10import org.springframework.web.bind.annotation.RequestMapping; 11 12import com.example.demo.models.InquiryForm; 13import com.example.demo.models.InquiryForm3; 14 15import com.example.demo.repositries.InquiryRepository; 16import com.example.demo.repositries.InquiryRepository3; // 17 18@Controller 19@RequestMapping("/") 20public class RootController { 21 22 @Autowired 23 InquiryRepository repository; 24 25 @Autowired 26 InquiryRepository3 repository3; 27 28 @GetMapping 29 public String index() { 30 return "root/index"; 31 } 32 33 @GetMapping("/form") 34 public String form(InquiryForm inquiryForm) { 35 return "root/form"; 36 } 37 38 @PostMapping("/form") 39 public String form(@Validated InquiryForm inquiryForm, BindingResult bindingResult, Model model) { 40 if (bindingResult.hasErrors()) { 41 return "root/form"; 42 } 43 44 repository.saveAndFlush(inquiryForm); 45 inquiryForm.clear(); 46 model.addAttribute("message", "お問い合わせを受け付けました。"); 47 return "root/form"; 48 } 49 50 @GetMapping("/form3") 51 public String form3(InquiryForm inquiryForm3) { 52 return "root/form3"; 53 } 54 55 @PostMapping("/form3") 56 public String form3(@Validated InquiryForm3 inquiryForm3, BindingResult bindingResult, Model model) { 57 if (bindingResult.hasErrors()) { 58 return "root/form3"; 59 } 60 61 repository3.saveAndFlush(inquiryForm3); 62 inquiryForm3.clear(); 63 model.addAttribute("message", "お問い合わせを受け付けました。"); 64 return "root/form"; 65 } 66}

(InquiryRepository3.java)

Java

1package com.example.demo.repositries; 2 3import java.util.List; 4import java.util.Optional; 5 6import org.springframework.data.jpa.repository.JpaRepository; 7import org.springframework.stereotype.Repository; 8 9import com.example.demo.models.InquiryForm; 10 11@Repository 12public interface InquiryRepository3 extends JpaRepository<InquiryForm3, String>{ 13Optional<InquiryForm> findById(String id); 14List<InquiryForm> findAll(); 15}

(InquiryForm3.java)

Java

1package com.example.demo.models; 2 3import javax.validation.constraints.Email; 4import javax.validation.constraints.NotBlank; 5import javax.validation.constraints.Size; 6 7import java.io.Serializable; 8 9import javax.persistence.Entity; 10import javax.persistence.GeneratedValue; 11import javax.persistence.GenerationType; 12import javax.persistence.Id; 13import javax.persistence.Table; 14 15import lombok.Data; 16 17@Data 18@Entity 19@Table(name = "inquiry") 20public class InquiryForm3 implements Serializable { 21 private static final long serialVersionUID = -6647247658748349084L; 22 23 @Id 24 @GeneratedValue(strategy = GenerationType.IDENTITY) 25 private long id; 26 27 @NotBlank 28 @Size(max = 10) 29 private String name; 30 31 @NotBlank 32 @Email 33 private String mail; 34 35 @NotBlank 36 @Size(max = 400) 37 private String content; 38 39 public void clear() { 40 name = null; 41 mail = null; 42 content = null; 43 } 44} 45

試したこと

私の認識では、JpaRepository<InquiryForm3, String>でInquiryForm3クラスをString型として扱い、データベースを扱えるようになると思っています。
InquiryForm3.javaInquiryForm3クラスを作成したので、扱えるはずだと思っていましたが、うまくいきません。
「型に解決できません」と表示された時のよくある原因を調べると、型名が間違っていることが多い様ですが、InquiryForm3クラスがあるので、原因は別にあると思っています。

判断のための情報が足りないなどありましたら、コメントいただけると幸いです。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

単純に、import していないからではありませんか。

import com.example.demo.models.InquiryForm; だけではなく、
import com.example.demo.models.InquiryForm3; も必要なのではないですか。

違っていたらすいません。

投稿2022/04/23 13:22

momodx

総合スコア185

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

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

milkcoffee

2022/04/23 19:53

ご回答ありがとうございます。 repositries.InquiryRepository3は作成しましたがmodels.InquiryForm3は抜けてました。 ただ追加した後もエラーは消えてくれません。 問題は別にありそうです。。。
milkcoffee

2022/05/05 18:50

コメントが遅れてすみません。 結論としてはmomodxさんの回答で合ってました。 InquiryForm3をImportした後もエラーが消えなかったのですが、dockerを再起動したらアプリは正常に動き、eclipseのクリーンでエラーは消えました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問