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)