リポジトリクラスとエンティティクラスを作成してコントローラークラスで呼び出してみました。
リポジトリクラス
java
1@Repository 2public interface MyDataRepository extends JpaRepository<MyData, Integer> { 3}
エンティティクラス
java
1@Entity 2@Table(name = "mydata") 3public class MyData { 4 5 @Id 6 @GeneratedValue(strategy = GenerationType.AUTO) 7 @Column 8 private Integer id; 9 10 @Column(length = 50, nullable = false) 11 private String name; 12 13 @Column(nullable = true) 14 private Integer age; 15 16 public Integer getId() { 17 return id; 18 } 19 20 public void setId(Integer id) { 21 this.id = id; 22 } 23以下getter setter
コントローラクラス
java
1@Controller 2public class HelloController { 3 4 @Autowired 5 MyDataRepository repository; 6 7 @PostConstruct 8 public void init() { 9 MyData d1 = new MyData(); 10 d1.setName("tuyano"); 11 d1.setAge(123); 12 repository.saveAndFlush(d1); 13 14 MyData d2 = new MyData(); 15 d2.setName("hanako"); 16 d2.setAge(15); 17 repository.saveAndFlush(d2); 18 19 repository.findAll(); 20 21 }
saveAndFlush()などの保存系メソッドは正常に行えるのですが、findAll()で例外が発生します。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloController': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: antlr/RecognitionException
他にもrepository.findById(1)やrepository.deleteById(1);は正常にできますが、repository.count()やrepository.deleteAll()は同じ例外が発生します。
データベースはmariaDBやH2で試しましたがいずれも同じ症状です。
STSからmavenベースで作成しているので、pom.xmlの依存関係は以下のように設定しています。
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> </dependency> </dependencies>
いろいろ試しましたが行き詰っています。
ご教授お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/22 02:04
2018/09/22 02:10