前提・実現したいこと
作成したCRUDアプリのエラーメッセージBeanCreationExceptionやAnnotationExceptionを解決したい
###質問に至った経緯
Mysql,Spring boot でCRUDができるアプリを作成している初心者です。
####https://qiita.com/monjara/items/5ef4afee2172750323a9
このサイトの指示に従いコードをそのまま貼り付け作成したアプリをSpringBootで起動しようとしたところ、エラーが発生してアプリが動かず、localhost:8080に接続できません。
今まではポスグレで接続していたため今回が初のMysqlとなりDB接続は確認していません。現在調査中です。
ほかにはMysqlのポート開放やファイアウォールの設定などもしていません。
time zone(文字化け)エラーとPublick key エラーまでは以下のコードの追加で解決しました。
現在12時間スタックしています、よろしくお願いします。
addPointApplicationProperty
1spring.datasource.url=jdbc:mysql://localhost:3306/productdb?allowPublicKeyRetrieval=true&setAutoCommit=false&useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
発生している問題・エラーメッセージ
StackTrace
12020-12-03 21:07:50.917 WARN 10308 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 22020-12-03 21:07:51.955 WARN 10308 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'productRepository' defined in com.example.productmanager.repository.ProductRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot resolve reference to bean 'jpaMappingContext' while setting bean property 'mappingContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.example.productmanager.entity.Product 32020-12-03 21:07:51.957 WARN 10308 --- [ main] o.s.b.f.support.DisposableBeanAdapter : Invocation of destroy method failed on bean with name 'entityManagerFactory': org.hibernate.AnnotationException: No identifier specified for entity: com.example.productmanager.entity.Product 42020-12-03 21:07:52.055 ERROR 10308 --- [ main] o.s.boot.SpringApplication : Application run failed 5 6org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'productRepository' defined in com.example.productmanager.repository.ProductRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot resolve reference to bean 'jpaMappingContext' while setting bean property 'mappingContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.example.productmanager.entity.Product 7 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342) ~[spring-beans-5.2.11.RELEASE.jar:5.2.11.RELEASE] 8 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113) ~[spring-beans-5.2.11.RELEASE.jar:5.2.11.RELEASE] 9com.example.productmanager.ProductManagerApplication.main(ProductManagerApplication.java:10) ~[classes/:na] 10 11Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is org.hibernate.AnnotationExc 12eption: No identifier specified for entity: com.example.productmanager.entity.Product 13 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1794) ~[spring-beans-5.2.11.RELEASE.jar:5.2.11.RELEASE] 14 15Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.example.productmanager.entity.Product 16 at org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:231) ~ 17 18~大半のatを省略~ 19 20
該当のソースコード
Productjava
1package com.example.productmanager.entity; 2 3import javax.persistence.Entity; 4import javax.persistence.GeneratedValue; 5import javax.persistence.GenerationType; 6import javax.persistence.Id; 7import javax.persistence.Transient; 8 9import lombok.Data; 10 11 12@Data 13@Entity 14public class Product { 15 private Long id; 16 private String name; 17 private String brand; 18 private String madein; 19 private float price; 20 21 @Transient 22 @Id 23 @GeneratedValue(strategy = GenerationType.IDENTITY) 24 public Long getId() { 25 return id; 26 } 27}
applicationProperty
1spring.jpa.database=MYSQL 2spring.datasource.platform=mysql 3#spring.datasource.url=jdbc:mysql://localhost:3306/productdb?setAutoCommit=false&useSSL=false←元のソースコード 4spring.datasource.url=jdbc:mysql://localhost:3306/productdb?allowPublicKeyRetrieval=true&setAutoCommit=false&useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC 5spring.datasource.username=productuser 6spring.datasource.password=productpass 7spring.jpa.hibernate.ddl-auto=none 8logging.level.root=WARN
試したこと
####追記:元のサイトでは記述はないですがlombok.jarをSTSに追加してるようで、Productクラスのidプロパティのsetter methodが見つからないというエラーから、lombokの自動追加機能が必要になってる説が出てきました。lombok.jarでSTSを選択するとダブルクリックで開かなくなってしまいます。
↑何か意見を頂きたいです。
Entityへの@Transientアノテーションの追加
import javaxの見直し
mysqlポート開放
ProductRepository.javaへの@Repository追加
補足情報(FW/ツールのバージョンなど)
環境
Windows10
STS4
MySQL8.0
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/04 10:49 編集