jpa使用小结
1、查询
在查询的时候,如果你查询的结果为list<a>,a是一个对象,这个时候查出来的是这个对象的所有属性的值,如下
select * from 表名 where 条件
但是你只想要这个对象的一部分属性,那list的泛型就不能是对象,可以是String[],即list<String[]>
这样就可以写成如下
select name from 表名 where 条件
list<String[]>转换为list<a>
for (String[] values : stringArrayList) {
//创建对象
CustomObject customObject = new CustomObject();
//根据下标进行赋值,这里的下标的值根据select 后的字段顺序
customObject.setProperty1(values[0]);
customObject.setProperty2(values[1]);
customObjectList.add(customObject);
}
动态查询:
生成的对象.findAll(查询的对象).where(
对象某个属性值.equals("")?查询条件给的值:null
);
需要自己写查询语句的时候,nativeQuery = true 不能少
@Query(value="sql语句",nativeQuery = true)
list<a> findbyId((@Param("a") A a);
2、增删改
@Transactional(), @Modifying() 这两个注解不能少
@Transactional()
@Modifying()
@Query(value="sql语句",,nativeQuery = true)int updateData(@Param("a") A a)