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

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

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

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Spring Boot

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

Q&A

解決済

1回答

1498閲覧

DAOに関するエラーについて

ruuuu

総合スコア176

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Spring Boot

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

0グッド

0クリップ

投稿2020/05/21 00:51

Eclipseにて、「javaアプリケーション」より実行を行なったファイルに、エラーが発生してしまいました。

以下は、MyDataDaoImpl.javaになります。

package com.tuyano.springboot; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; public class MyDataDaoImpl implements MyDataDao<MyData> { private static final long serialVersionUID = 1L; @PersistenceContext private EntityManager entityManager; public MyDataDaoImpl() { super(); } public MyDataDaoImpl(EntityManager manager) { entityManager = manager; } @Override public List<MyData> getAll(){ List<MyData> list = null; CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaQuery<MyData> query = builder.createQuery(MyData.class); Root<MyData> root = query.from(MyData.class); query.select(root); list = (List<MyData>)entityManager.createQuery(query).getResultList(); return list; } @Override public MyData findById(long id) { return (MyData)entityManager.createQuery("from MyData where id = " + id).getSingleResult(); } @Override public List<MyData> findByName(String name) { return (List<MyData>)entityManager.createQuery("from MyData where nama = " + name).getResultList(); } }

以下は、HeloController.javaになります。

package com.tuyano.springboot; import java.util.Optional; import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; 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.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import com.tuyano.springboot.repositories.MyDataRepository; @Controller public class HeloController { @Autowired MyDataRepository repository; @Autowired MyDataDaoImpl dao; @RequestMapping(value = "/",method = RequestMethod.GET) public ModelAndView index(@ModelAttribute("formModel") MyData mydata,ModelAndView mav) { mav.setViewName("index"); mav.addObject("msg","MyDataのサンプルです。"); Iterable<MyData> list = dao.getAll(); mav.addObject("datalist",list); return mav; } @RequestMapping(value = "/",method = RequestMethod.POST) @Transactional(readOnly=false) public ModelAndView form(@ModelAttribute("formModel")@Validated MyData mydata, BindingResult result,ModelAndView mov) { ModelAndView res = null; if(!result.hasErrors()) { repository.saveAndFlush(mydata); res = new ModelAndView("redirect:/"); }else { mov.setViewName("index"); mov.addObject("msg","sorry,error is occured..."); Iterable<MyData> list = repository.findAll(); mov.addObject("datalist",list); res = mov; } return res; } @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."); Optional<MyData> data = repository.findById((long)id); mav.addObject("formModel",data.get()); System.out.println("ok"); return mav; } @RequestMapping(value="/edit",method=RequestMethod.POST) @Transactional(readOnly=false) public ModelAndView update(@ModelAttribute MyData mydata,ModelAndView mav){ repository.saveAndFlush(mydata); System.out.println(mydata); return new ModelAndView("redirect:/"); } @RequestMapping(value = "/delete/{id}",method = RequestMethod.GET) public ModelAndView delete(@PathVariable int id,ModelAndView mav) { mav.setViewName("delete"); mav.addObject("title","delete mydata."); Optional<MyData> data = repository.findById((long)id); System.out.println(data.get()); mav.addObject("formModel",data.get()); return mav; } @RequestMapping(value = "/delete",method = RequestMethod.POST) public ModelAndView remove(@RequestParam long id,ModelAndView mav) { repository.deleteById(id); 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("a"); repository.saveAndFlush(d1); MyData d2 = new MyData(); d2.setName("hanako"); d2.setAge(15); d2.setMail("hanako@flower"); d2.setMemo("b"); repository.saveAndFlush(d2); MyData d3 = new MyData(); d3.setName("sachiko"); d3.setAge(37); d3.setMail("sachico@happy"); d3.setMemo("c"); 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; } }

以下はMyData.javaです

package com.tuyano.springboot; import java.io.Serializable; import java.util.List; public interface MyDataDao<T> extends Serializable { public List<T> getAll(); public T findById(long id); public List<T> findByName(String name); }

以下はエラー内容となります。

*************************** APPLICATION FAILED TO START *************************** Description: Field dao in com.tuyano.springboot.HeloController required a bean of type 'com.tuyano.springboot.MyDataDaoImpl' that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider defining a bean of type 'com.tuyano.springboot.MyDataDaoImpl' in your configuration.

エラー内容で検索し調べたのですが、解決できませんでした。
こちらのエラーにつきまして、ご助言頂ければ幸いです!

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

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

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

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

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

guest

回答1

0

ベストアンサー

@org.springframework.beans.factory.annotation.Autowired(required=true)

アノテーション「Autowired」が指定された項目が spring の bean として認識されていません。

bean に登録しましょう。

投稿2020/05/23 03:42

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ruuuu

2020/05/23 08:43 編集

ご回答ありがとうございます。
ruuuu

2020/05/23 08:43

MyDataDaoImpl.javaのクラス名の上に「@Repository」の記述を追記しましたら、エラーが解消されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問