1.使用 Spring Data Jpa建立数据访问层时报错
报错信息如下:
Invalid derived query! No property userName found for type PMS_User! Did you mean ‘username’?
大意是指这个搜索没有对应的属性,百度了下,有些网友说只要关闭eclipse中Window-Preferences,然后再搜索Spring关闭Invalid derived query验证即可,这确实能消除当前报错,但是治标不治本啊~~~根据错误提示,应该是当前的实体类里没有userName字段,只有username字段,因此,方法名应该为findByUsername 至于为何这样命名,大家可以去查询下Jpa如何定义查询方法
2.数据库字段类型映射到java类型时报错
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [username] in table [pms_user]; found [nvarchar2 (Types#OTHER)], but expecting [varchar2(255 char) (Types#VARCHAR)]
因为String类型默认映射的是varchar,nvarchar2 可以通过columnDefinition额外指定,
@Column(name = "USERNAME",columnDefinition = "nvarchar2")
3.忘记标识主键
Caused by: org.hibernate.AnnotationException: No identifier specified for entity: tuwei.qcserver.entity.PMS_User
这个很简单,只要在对应字段上加上@Id即可。Hibernate中,一定要有主键。
另外,若是通过Spring Boot Test进行测试,不要忘记了扫描实体和dao层
@EntityScan("com.smart.entity")
@EnableJpaRepositories("com.smart.commondao.repository")