Spring+Data+JPA持久层的使用及注意事项(一)

为了方便理解,和看起来更加直观,本文将以在文中注释的方式来说明在maven项目下整合springdata和JPA框架结构中持久层的写法注意事项。

//通过使用继承JpaRespository的方式,有一些简单的增删改查的方法是不需要写的,而且书写dao层只写接口就可以,不需要写实现类,方便持久层开发

//首先,在数据的处理过程中事务是必须要开启的,可以直接在方法中开启或者在接口上面开启就可以了
@Transactional
public interface StandardDao extends JpaRepository {
    //使用查询某个值或者执行模糊查询的时候,jpa也给出了一些查询的方法,只需要书写find***并注入参数就可以查询,这个可以多看一些jpa关于查询的字段信息
		public List findByName(String name);	


//1,注解使用sql语句的时候,主要应用于一些复杂查询,需要加上@Query的注解信息,它的默认nativeQuery属性为false这个时候可以直接书写hql语句
//	@Query("from Standard where name = ?")
//2,注解使用sql语句的时候,只要把nativeQuery属性改为true就可以了,同时,书写sql语句需要使用value来定义
        @Query(nativeQuery=true,value="select * from t_standard where c_name= ? ")
        public List findByAbc(String name);

 //	@Query(nativeQuery=true,value="update t_standard set c_name=? where c_id=?")
 //     @Query(nativeQuery=false,value="update Standard set name=? where id=?")
        
     @Query("update Standard set name=? where id=?")
   
     @Modifying
        public void update(String name,Integer id);//此处主要用来印证前面所说的nativeQuery=false的情况执行情况,当然,不知道为什么会卡死//@Query(nativeQuery=true,value="delete from t_standard Where c_id = ?")        @Query("delete from Standard where id = ?")        //@Query(nativeQuery=false,value="delete from Standard where id = ?")         @Modifying        public void del(Integer id);        }

你可能感兴趣的:(日常笔记)