Ecripseを使ってSpring Bootプログラミング入門という参考書をすすめているのですが、
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloController': Injection of autowired dependencies failed;nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.yamada.springboot.MyDataRepository com.yamada.springboot.HelloController.repository;No bean named 'entityManagerFactory' is defined
というエラーが出て困っています。
社内にSpringがわかる人がいないため、どなたかわかる方がいらっしゃいましたらご教授お願いいたします。念のため、コードも載せます。
ちなみに、Spring Bootのバージョンは1.3.6で文字コードはutf-8です。
java
1package com.yamada.springboot; 2 3import javax.persistence.Column; 4import javax.persistence.Entity; 5import javax.persistence.GeneratedValue; 6import javax.persistence.GenerationType; 7import javax.persistence.Id; 8import javax.persistence.Table; 9import javax.validation.constraints.Max; 10import javax.validation.constraints.Min; 11import javax.validation.constraints.NotNull; 12 13import org.hibernate.validator.constraints.Email; 14import org.hibernate.validator.constraints.NotEmpty; 15 16@Entity 17@Table(name="mydata") 18public class MyData { 19 20 @Id 21 @GeneratedValue(strategy = GenerationType.AUTO) 22 @Column 23 @NotNull 24 private long id; 25 26 @Column(length = 50, nullable = false) 27 @NotEmpty 28 private String name; 29 30 @Column(length = 200, nullable = true) 31 @Email 32 private String mail; 33 34 @Column(nullable = true) 35 @Min(0) 36 @Max(200) 37 private Integer age; 38 39 @Column(nullable = true) 40 private String memo; 41 42 public long getId() { 43 return id; 44 } 45 public void setId(long id) { 46 this.id = id; 47 } 48 49 public String getName() { 50 return name; 51 } 52 public void setName(String name) { 53 this.name = name; 54 } 55 56 public String getMail() { 57 return mail; 58 } 59 public void setMail(String mail) { 60 this.mail = mail; 61 } 62 63 public Integer getAge() { 64 return age; 65 } 66 public void setAge(Integer age) { 67 this.age = age; 68 } 69 70 public String getMemo() { 71 return memo; 72 } 73 public void setMemo(String memo) { 74 this.memo = memo; 75 } 76}
java
1package com.yamada.springboot.repositories; 2 3import java.util.List; 4 5import org.springframework.data.jpa.repository.JpaRepository; 6import org.springframework.stereotype.Repository; 7 8import com.yamada.springboot.MyData; 9 10@Repository 11public interface MyDataRepository extends JpaRepository<MyData, Long> { 12 13 public MyData findById(Long name); 14 public List<MyData> findByNameLike(String name); 15 public List<MyData> findByIdIsNotNullOrderByIdDesc(); 16 public List<MyData> findByAgeGreaterThan(Integer age); 17 public List<MyData> findByAgeBetween(Integer age1, Integer age2); 18 19} 20
java
1package com.yamada.springboot; 2 3import javax.annotation.PostConstruct; 4 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.stereotype.Controller; 7import org.springframework.transaction.annotation.Transactional; 8import org.springframework.validation.BindingResult; 9import org.springframework.validation.annotation.Validated; 10import org.springframework.web.bind.annotation.ModelAttribute; 11import org.springframework.web.bind.annotation.PathVariable; 12import org.springframework.web.bind.annotation.RequestMapping; 13import org.springframework.web.bind.annotation.RequestMethod; 14import org.springframework.web.bind.annotation.RequestParam; 15import org.springframework.web.servlet.ModelAndView; 16 17import com.yamada.springboot.repositories.MyDataRepository; 18 19@Controller 20public class HelloController { 21 22 @Autowired 23 MyDataRepository repository; 24 25 @RequestMapping(value = "/", method = RequestMethod.GET) 26 public ModelAndView index( 27 @ModelAttribute("formModel") MyData mydata, 28 ModelAndView mav) { 29 mav.setViewName("index"); 30 mav.addObject("msg","this is sample content."); 31 mav.addObject("formModel",mydata); 32 Iterable<MyData> list = repository.findAll(); 33 mav.addObject("datalist",list); 34 return mav; 35 } 36 37 @RequestMapping(value = "/", method = RequestMethod.POST) 38 @Transactional(readOnly=false) 39 public ModelAndView form( 40 @ModelAttribute("formModel") 41 @Validated MyData mydata, 42 BindingResult result, 43 ModelAndView mov) { 44 ModelAndView res = null; 45 if (!result.hasErrors()){ 46 repository.saveAndFlush(mydata); 47 res = new ModelAndView("redirect:/"); 48 } else { 49 mov.setViewName("index"); 50 mov.addObject("msg","sorry, error is occured..."); 51 Iterable<MyData> list = repository.findAll(); 52 mov.addObject("datalist",list); 53 res = mov; 54 } 55 return res; 56 } 57 58 @PostConstruct 59 public void init(){ 60 MyData d1 = new MyData(); 61 d1.setName("tuyano"); 62 d1.setAge(123); 63 d1.setMail("syoda@tuyano.com"); 64 d1.setMemo("this is my data!"); 65 repository.saveAndFlush(d1); 66 MyData d2 = new MyData(); 67 d2.setName("hanako"); 68 d2.setAge(15); 69 d2.setMail("hanako@flower"); 70 d2.setMemo("my girl friend."); 71 repository.saveAndFlush(d2); 72 MyData d3 = new MyData(); 73 d3.setName("sachiko"); 74 d3.setAge(37); 75 d3.setMail("sachico@happy"); 76 d3.setMemo("my work friend..."); 77 repository.saveAndFlush(d3); 78 } 79 80 @RequestMapping(value = "/edit/{id}", method = RequestMethod.GET) 81 public ModelAndView edit(@ModelAttribute MyData mydata, 82 @PathVariable int id,ModelAndView mav) { 83 mav.setViewName("edit"); 84 mav.addObject("title","edit mydata."); 85 MyData data = repository.findById((long)id); 86 mav.addObject("formModel",data); 87 return mav; 88 } 89 90 @RequestMapping(value = "/edit", method = RequestMethod.POST) 91 @Transactional(readOnly=false) 92 public ModelAndView update(@ModelAttribute MyData mydata, 93 ModelAndView mav) { 94 repository.saveAndFlush(mydata); 95 return new ModelAndView("redirect:/"); 96 } 97 98 @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) 99 public ModelAndView delete(@PathVariable int id, 100 ModelAndView mav) { 101 mav.setViewName("delete"); 102 mav.addObject("title","delete mydata."); 103 MyData data = repository.findById((long)id); 104 mav.addObject("formModel",data); 105 return mav; 106 } 107 108 @RequestMapping(value = "/delete", method = RequestMethod.POST) 109 @Transactional(readOnly=false) 110 public ModelAndView remove(@RequestParam long id, 111 ModelAndView mav) { 112 repository.delete(id); 113 return new ModelAndView("redirect:/"); 114 } 115} 116
xml
1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 6 <groupId>com.yamada.springboot</groupId> 7 <artifactId>MyBootApp</artifactId> 8 <version>0.0.1-SNAPSHOT</version> 9 <packaging>jar</packaging> 10 11 <name>MyBootApp</name> 12 <description>Sample project for Spring Boot</description> 13 14 <parent> 15 <groupId>org.springframework.boot</groupId> 16 <artifactId>spring-boot-starter-parent</artifactId> 17 <version>1.3.6.RELEASE</version> 18 <relativePath/> <!-- lookup parent from repository --> 19 </parent> 20 21 <properties> 22 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 23 <java.version>1.8</java.version> 24 <start-class>org.springframework.boot.SpringApplication</start-class> 25 </properties> 26 27 <dependencies> 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-web</artifactId> 31 </dependency> 32 33 <dependency> 34 <groupId>org.springframework.boot</groupId> 35 <artifactId>spring-boot-starter-test</artifactId> 36 <scope>test</scope> 37 </dependency> 38 <dependency> 39 <groupId>org.springframework.boot</groupId> 40 <artifactId>spring-boot-starter-thymeleaf</artifactId> 41 </dependency> 42 <dependency> 43 <groupId>org.springframework.boot</groupId> 44 <artifactId>spring-boot-starter-data-jpa</artifactId> 45 </dependency> 46 <dependency> 47 <groupId>org.hsqldb</groupId> 48 <artifactId>hsqldb</artifactId> 49 <scope>runtime</scope> 50 </dependency> 51 <dependency> 52 <groupId>org.springframework.boot</groupId> 53 <artifactId>spring-boot-starter-data-mongodb</artifactId> 54 </dependency> 55 </dependencies> 56 57 <build> 58 <plugins> 59 <plugin> 60 <groupId>org.springframework.boot</groupId> 61 <artifactId>spring-boot-maven-plugin</artifactId> 62 </plugin> 63 </plugins> 64 </build> 65 66</project>
以上になります。よろしくお願いします。

回答5件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。