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

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

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

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

Spring Boot

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

Q&A

0回答

976閲覧

コード内のエラーの解消について

aae_11

総合スコア178

Java

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

Spring Boot

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

1グッド

0クリップ

投稿2020/05/02 01:48

編集2020/05/02 01:50

「spring boot プログラミング入門」という書籍で学習を続けていたのですが、問題が発生してしまいました。
該当の箇所は、Chapter5.2内のコードです。
以下はコントローラークラスのHeloController.javaです。

package com.test.springboot; import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; // import javax.transaction.Transactional; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; // import org.springframework.web.servlet.ModelAndView; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import com.shinya.springboot.repositories.MyDataRepository; @Controller public class HeloController { @Autowired MyDataRepository repository; @RequestMapping(value = "/edit/{id}", method = RequestMethod.GET) public ModelAndView edit(@ModelAttribute MyData mydata, @PathVariable int id, ModelAndView mav) { mav.setViewName("edit"); mav.addObject("title", "edit mydata."); MyData data = repository.findById((long)id); mav.addObject("formModel",data); System.out.println("ok"); return mav; } @RequestMapping(value="/edit",method=RequestMethod.POST) @Transactional(readOnly=false) public ModelAndView form(@ModelAttribute MyData mydata,ModelAndView mav){ repository.saveAndFlush(mydata); return new ModelAndView("redirect:/"); } @PostConstruct public void init() { MyData d1 = new MyData(); d1.setName("tuyano"); d1.setAge(123); d1.setMail("syoda@tuyano.com"); d1.setMemo("this is my data!"); repository.saveAndFlush(d1); MyData d2 = new MyData(); d2.setName("hanako"); d2.setAge(15); d2.setMail("hanako@flower"); d2.setMemo("my girl friend"); repository.saveAndFlush(d2); MyData d3 = new MyData(); d3.setName("sachiko"); d3.setAge(37); d3.setMail("sachico@happy"); d3.setMemo("my work friend..."); repository.saveAndFlush(d3); } } class DataObject{ private int id; private String name; private String value; public DataObject(int id, String name, String value){ super(); this.id = id; this.name = name; this.value = value; } public int getId(){ return id;} public void setId(int id){ this.id = id;} public String getName() { return name;} public void setName(String name){ this.name = name; } public String getValue(){ return value; } public void setValue(String value){ this.value = value; } }

以下は、MyDataRepositori.javaです

package com.test.springboot.repositories; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.shinya.springboot.MyData; @Repository public interface MyDataRepository extends JpaRepository<MyData,Long> { public MyData findById(Long name); }

以下は、エンティティクラスのMyData.javaです。

package com.test.springboot; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="mydata") public class MyData { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column private long id; @Column(length = 50,nullable = false) private String name; @Column(length = 200,nullable = true) private String mail; @Column(nullable = true) private Integer age; @Column(nullable = true) private String memo; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMail() { return mail; } public void setMail(String mail) { this.mail = mail; } public Integer getAge(){ return age; } public void setAge(Integer age) { this.age = age; } public String getMemo() { return memo; } public void setMemo(String memo) { this.memo = memo; } }

問題点としまして、「HeloController.java」のコードでは、MyData data = repository.findById((long)id);ここの箇所でエラーが出てしまい、さらに、「MyDataRepositori.java」の public MyData findById(Long name);ここの箇所でエラーが出てしまい、実行に失敗してしまいます。
Eclipseのクイックフィックスを使用し、```public Optional<MyData> findById(Long name);

こちらの問題の解決方法がわかる方がいましたら、教えて貰えれば幸いです ちなみに、[正誤表](https://www.shuwasystem.co.jp/support/7980html/4565.html)には該当箇所は載ってませんでした。
newyee👍を押しています

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

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

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

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

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

m.ts10806

2020/05/02 01:51 編集

> spring boot プログラミング入門 何度も言ってますが、書籍かえてください。 著者の営業妨害という意図では全くなく、本質的に役に立つかどうかは別の話ですから。 あと、Spring忘れてJavaの基礎をおさめてください。
aae_11

2020/05/02 08:24

こちらの著者の方の書籍でなくても良いですが、そもそもSpringBootの書籍自体あまりないですよ
aae_11

2020/05/02 08:27 編集

書籍で学習を進める場合は、「Spring Boot 2 プログラミング入門」こちらの購入を検討してみます。
m.ts10806

2020/05/02 09:22

>SpringBootの書籍自体あまりないですよ 小さな本屋しか探してないんですね。そりゃそうだ。 書籍依存でどうもならないのはどの言語も同じ。執筆当時最新だったとしても出版したときには既に古くなってる。 あと何年続けます?その無駄遣い。お金と時間が無限にある人のやり方です。
m.ts10806

2020/05/02 09:23

自身に都合の悪い指摘は全部無視してるからできるようにならない。それだけの話だよ。
aae_11

2020/05/02 09:51 編集

小さな本屋しか探していないと言いましたが、ネットも結構探しましたよ。 そもそもmtsさんSpringBootの書籍あんまり知らないのではないですか? 知らないのに、適当な事言うのはやめた方が良いですよ
m.ts10806

2020/05/02 09:55

「書籍あんまり知らない」を何の根拠があって言ってるのか知らないですが、そもそも言語基礎があればドキュメントとちょっと考える力と調べる力があれば十分です。私はそれで実務でやっていけています。Springもね。 言語基礎がなければ書籍も無理です。 単に私を否定したいだけで指摘を聞き入れないのは如何なものかと。 聞き入れてればとっくに初心者卒業してます。
aae_11

2020/05/02 09:58

小さな本屋しか探していないと言うことは、もっと学習におすすめな書籍を知っているからですよね? ならばそれを提示してねって話です
m.ts10806

2020/05/02 10:07

この数行程度も読まないんですか? 書いた通り、言語基礎がないと書籍も無理なので、言語基礎をきちんとおさめてから出直してください。 Javaの入門書なら新旧幾らでもあるでしょう。ただ、それでもドキュメント活用できないと初心者からは卒業できません。 具体的な書籍名を挙げないのは知らないからではなく無駄だから。無駄なことを教える人はエンジニアどころかアドバイス向いてません。
aae_11

2020/05/02 10:16 編集

そうやって都合の悪いことから、話をすり替えるのうまいですねw 無駄といっていますが、あなたは今まで書籍で学習してきてないから、知らないだけでしょう。
m.ts10806

2020/05/02 10:23

? 意味が分からない。 「言語基礎がないと書籍も無理」は書籍を知ってるから言えることなんですけど。自身で証明してるじゃないですか。言語基礎がないから書籍使ってもできてない。ドキュメントも活用しない。ちゃんと基礎があればフレームワークのバージョンがあっても違いを吸収して実装できます。 つーか、書籍で学習してないと思ってる人が実務でできてるのだから、真似すれば良いのでは? 結局は否定したいだけで、プログラミング身につける気は一切ないってことですよね。これまでのアドバイス全て踏み倒してきてるところからそう判断できます。
aae_11

2020/05/02 10:27 編集

あなたはどうも、自分が絶対に正しいと思い込んでいる部分があるようですね。 そもそもあなただけのアドバイスだけを取り入れて学習するつもりはなく、様々な方からのアドバイスを元に、考慮し、実践したいと思っていますので。
退会済みユーザー

退会済みユーザー

2020/05/02 10:33

とりあえず未解決問題60件+を正しく解決してください。 また同じ質問(見る角度を変えただけ)の質問を前の質問と言い切るのはどうかと
m.ts10806

2020/05/02 10:39

?意味がわからない。誰も自分だけの話を聞けとは言っていない。普通のエンジニアなら普通に持つのと同じ感覚で指摘しているので、私見ではない。 それに「基礎を学習しよう」という様々な方のアドバイスを無視し続けてるじゃないですか。 一番無視してはいけないアドバイスが無視され続けている。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問