初めまして。閲覧ありがとうございます。
MybatisとSpringを使用しています。
そこで発生したエラーの対処法がわからないので、質問させていただきます。
初めての質問なので、不備等ございましたら、ご指摘のほどよろしくお願いいたします。
エラー内容
ERROR 16136 --- [nio-8081-exec-2] o.a.c.c.C.[.[.[.[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [/learner5] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): curriculum.mapper.OwnerMapper.findAll] with root cause
下記が書いたコードになります。
Main.java
1@SpringBootApplication 2@MapperScan(basePackages = {"curriculum.mapper"}) 3public class Main { 4 public static void main(String[] args) { 5 SpringApplication.run(Main.class, args); 6 } 7}
Owners.java
1@Data 2@Table(name="owners") 3@AllArgsConstructor 4@NoArgsConstructor 5public class Owners{ 6 @Id 7 @GeneratedValue(strategy = GenerationType.IDENTITY) 8 private Integer id; 9 @Column(nullable = false) 10 private String name; 11}
OwnerMapper.java
1@Mapper 2public interface OwnerMapper{ 3 4 List<Owners> findAll(); 5}
OwnerMapper.xml
1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 3<mapper namespace="curriculum.mapper.OwnerMapper"> 4 <select id="findAll" resultMap="BaseResultMap"> 5 SELECT * FROM owners 6 </select> 7 <resultMap id="BaseResultMap" type="Owners" > 8 <id property="id" column="id" ></id> 9 <result property="name" column="name"></result> 10 </resultMap> 11</mapper>
OwnersService.java
1@Service 2public class OwnersService{ 3 4 @Autowired 5 private OwnerMapper ownerMapper; 6 @Transactional 7 public List<Owners> findAll() { 8 return ownerMapper.findAll(); 9 } 10}
OwnersController.java
1@Controller 2public class OwnersController{ 3 @Autowired 4 private OwnersService ownersService; 5 6 @RequestMapping("/") 7 public String index(Model model) { 8 9 model.addAttribute("owners", ownersService.findAll()); 10 return "index"; 11 }
application.yml
1spring: 2 jpa: 3 open-in-view: false 4 main: 5 banner-mode: off 6 log-startup-info: false 7 datasource: 8 driver-class-name: org.postgresql.Driver 9 url: jdbc:postgresql://localhost:5432/testdb 10 username: postgres 11 password: postgres 12mybatis: 13 mapper-locations: classpath*:java/curriculum/mapper/*Mapper.xml
試したこと
- Mapperファイルは同じフォルダ
- 誤字脱字は何回も確認した。
- Main.javaには@MapperScanを書いてみた(MapperScanを書いた場合は@Mapperを外したりもした)
- ymlファイルにはlocationでxmlファイルを指定した
- @Paramを書いてみた
- xmlファイルのresultTypeをresultMapに変えてみた
- build.gradleにはimplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.1'と書いてある。
何時間もこのエラーに悩んでいます。
お忙しいところ恐縮ですが、ご回答のほどよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。