Spring-bootでサンプル通りに作ったがToStringBuilderなどでエラーが発生する
Spring bootのサンプルを自分の環境で実行しようとしたらエラーで出来ない状態です。
このページの通りにコピペしました。
https://qiita.com/rubytomato@github/items/e4fda26faddbcfd84d16
環境
- VSCode 1.34.0
- MariaDB 10.3(x64)
- Java 1.8.0
- Spring-boot 2.0.4
出ているエラーは次の通りです。
1, Prefecture.java
にて ToStringBuilder.reflectionToString
が認識されない
reflectionToString
が
The method reflectionToString(Prefecture, ToStringStyle) is undefined for the type ToStringBuilderJava(67108964)
となってしまいます。
2, ActorController.java
でエラー
actorRepository
の delete()
や findOne()
が使えません。
void org.springframework.data.repository.CrudRepository.delete(Actor arg0)
The method delete(Actor) in the type CrudRepository is not applicable for the arguments (Integer)Java(67108979)The method findOne(Example) in the type QueryByExampleExecutor is not applicable for the arguments (Integer)Java(67108979)
また、
private Actor<Prefecture> convert(ActorForm form) {
で Actor
が
com.example.actor.repository.Actor
The type Actor is not generic; it cannot be parameterized with arguments Java(16777740)
になります。
一応 pom.xml です
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.M3</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
</project>
application.yml(.properties みたいなもの)
server:
port: 9000
spring:
thymeleaf:
enabled: true
cache: false
datasource:
driverClassName: org.mariadb.jdbc.Driver
url: jdbc:mariadb://localhost/sample_db_spring
username: ユーザー名
password: ****
jpa:
hibernate:
show-sql: true
ddl-auto: update
database-platform: org.hibernate.dialect.MySQLDialect
messages:
basename: messages
cache-seconds: -1
encoding: UTF-8
endpoints:
enabled: true
repository.java
package com.example.demo.repository;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.junit.platform.commons.util.ToStringBuilder;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Entity
@Table(name = "prefecture")
@Getter
@Setter
@ToString
public class Prefecture {
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Column(name="name", nullable=false)
private String name;
// @Override
// public String toString() {
// return ToStringBuilder.reflectionToString(this);
// }
}