springboot+jpa的坑

1.连数据库报The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone

配置文件url加上"serverTimezone=GMT%2B8":
jdbc:mysql://localhost:3306/ppc?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8

2.jpa Unknown column 'menu0_.parent_id' in 'field list'

table实体类中的字段在表中找不到,注意大小写,大写会被替换成'_';

如:字段 parentId会被写成parent_id 表中的列也必须是parent_id

3.Table 'ppc.hibernate_sequence' doesn't exist

背景:

springboot 1.5.9.RELEASE 升级至 2.0.5.RELEASE时,spring-boot-starter-data-jpa使用了hibernate5:

解决方法:

spring.jpa.hibernate.use-new-id-generator-mappings=false 或 在主键上加@GeneratedValue(strategy = GenerationType.IDENTITY)

mysql表字段id设置为自增;`id` INT(11) NOT NULL AUTO_INCREMENT

4.org.hibernate.LazyInitializationException: could not initialize proxy ----- no Session

在实体类上加@Proxy(lazy=false)

5.@DynamicUpdate、@DynamicInsert
放在table对应的bean上,(@DynamicInsert)插入时时间为空的情况下时间字段不插入null,(@DynamicUpdate)动态更新数据库信息,查询出的对象的时间为之前存储时间,不做修改的情况下更新对象,更新时间不会改变,需要加上此注解
引用lombak
6.@Data放在实体类上省去写set、get、toString方法
7.lambda表达式 
8.BeanUtils.copyProperties copy Bean对象属性

你可能感兴趣的:(springboot,jpa)