最近在写一个功能,jpa操作,不过还是习惯性地用了sql语句来查询,主要是嫌麻烦,想返回的数据用一条查询返回来,所以就用spring jpa写了个自定义的实体类来装我专门返回来的数据字段,然后sql也有点复杂,join了几张表,也写了一点子查询什么的,估计后期要改这个sql,但是目前是为了方便,临时写的sql,后期数据量大的话,这个sql语句如果不优化,就不好加载了,会比较慢,然后下面讲一下一些注意点,这也是踩的一些坑吧,最后再把一些图片贴上,给各位参考参考:
注意点:
1,自定义实体类的话,首先是要把这个类放到Repository寻找的model包路径里边的,不然会报错,说你新建的类不存在,创建Bean异常;
2,自定义的实体类之后,要新建一个专门的Repository来调用它,一个Repository对应一个实体;
3,@Column注解,在spring jpa中的命名默认是下划线分隔的字段命名,弄成驼峰形式的话,也会转回下划线的格式,这个挺坑的,反正我也弄了挺久,那时候不知道spring jpa有个这样的默认情况,记得@Column的命名要与sql语句中的别名对应一样,不然也会报错,说找不到这个字段;
4,如果@Column注解,先用驼峰命名的话,就可以在配置文件里配置,配置一个好像是ImprovedNamingStrategy的命名配置吧,