遇到的问题
问题1:
OneToMany错误
解决方法:
@JsonIgnore
@OneToMany(mappedBy ="publisher")
@JsonIgnore作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
在使用@JsonIgnore注解的时候,导包总是出错,com.fasterxml.jackson.annotation.JsonIgnore 这是正确的
包,可是不存在。后来手动在build.gradle中添加compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.0.pr2' 才成功。
后来发现,即使不使用@JsonIgnore也没问题,而且使用H2和mysql都没问题。
问题2:
忘记加泛型: private List books;
Caused by: org.hibernate.AnnotationException: Collection has neither generic type or OneToMany.targetEntity() defined: org.test.entity.Author.books
解决方法: private Listbooks;
笔记
StartupRunner
StartupRunner会在程序启动时首先执行,而且只执行一次。可以在这个方法中执行初始化写操作。
但是,遇到异常,会导致程序停止运行,需要进行try/catch处理。
定时任务
@Scheduled(fixedRate=2000):上一次开始执行时间点后2秒再次执行;
@Scheduled(fixedDelay=2000):上一次执行完毕时间点后2秒再次执行;
@Scheduled(initialDelay=1000, fixedDelay=2000):第一次延迟1秒执行,然后在上一次执行完毕时间点后2秒再次执行;
@Scheduled加在定时执行的方法上。
@EnableScheduling加在程序入口的类上,该注解的作用是发现@Scheduled的任务并后台执行。