欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-04 23:38:07
...
为了方便理解,和看起来更加直观,本文将以在文中注释的方式来说明在maven项目下整合springdata和JPA框架结构中持久层的写法注意事项。

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

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