spring-data-jpa实现增删改查以及分页操作方法
有几个坑一定要注意:
实现删除操作的时候一定要在各层类中增加
@Transactional
注释,否则会一直报错
在自己使用@Query定义操作时,会碰到编译器报错,这个时候只需要禁用QL的语法检查即可
//Repository
packagecom.example.myproject.dao; importcom.example.myproject.domain.User; importorg.springframework.data.domain.Page; importorg.springframework.data.domain.Pageable; importorg.springframework.data.jpa.repository.JpaRepository; importorg.springframework.data.jpa.repository.Modifying; importorg.springframework.data.jpa.repository.Query; importorg.springframework.data.repository.query.Param; importjavax.transaction.Transactional; importjava.util.List; /** *Createdbylenovoon2017/4/19. */ @Transactional publicinterfaceUserRepositoryextendsJpaRepository{ voiddeleteById(intid); voiddeleteByName(Stringname); voiddeleteBySex(Stringsex); voiddeleteByAge(intage); voidremoveByNameAndAge(Stringname,intage); @Modifying @Query(value="updateuserusetu.name=:newNamewhereu.name=:oldName",nativeQuery=true) voidupdateNameByName(@Param("oldName")StringoldName,@Param("newName")StringnewName); List findAll(); Page findAll(Pageablepageable); List findByName(Stringname); List findBySex(Stringsex); List findByAge(intage); UserfindByNameAndSex(Stringname,Stringsex); }
//Controller
packagecom.example.myproject.web;
importcom.example.myproject.dao.UserRepository;
importcom.example.myproject.domain.User;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.data.domain.Page;
importorg.springframework.data.domain.PageRequest;
importorg.springframework.data.domain.Pageable;
importorg.springframework.data.domain.Sort;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.RequestParam;
importorg.springframework.web.bind.annotation.RestController;
importjavax.transaction.Transactional;
importjava.util.List;
/**
*Createdbylenovoon2017/4/19.
*/
@RestController
@RequestMapping("/")
@Transactional
publicclassUserController{
@Autowired
privateUserRepositoryuserRepository;
@RequestMapping(value="/userSave")
publicStringuserSave(@RequestParamStringname,@RequestParamStringsex,@RequestParamintage){
Useruser=newUser();
user.setName(name);
user.setAge(age);
user.setSex(sex);
userRepository.save(user);
return"true";
}
@RequestMapping(value="/deleteById")
publicStringdeleteById(@RequestParamintid){
userRepository.deleteById(id);
return"success";
}
@RequestMapping(value="/deleteByName")
publicStringdeleteByName(@RequestParamStringname){
userRepository.deleteByName(name);
return"success";
}
@RequestMapping(value="/deleteBySex")
publicStringdeleteBySex(@RequestParamStringsex){
userRepository.deleteBySex(sex);
return"success";
}
@RequestMapping(value="/deleteByAge")
publicStringdeleteByAge(@RequestParamintage){
userRepository.deleteByAge(age);
return"success";
}
@RequestMapping(value="/deleteByNameAndAge")
publicStringdeleteByNameAndAge(@RequestParamStringname,@RequestParamintage){
userRepository.removeByNameAndAge(name,age);
return"success";
}
@RequestMapping(value="/updateNameByName")
publicStringupdateNameByName(@RequestParamStringoldName,@RequestParamStringnewName){
userRepository.updateNameByName(oldName,newName);
return"success";
}
@RequestMapping(value="/findall")
publicListfindAll(){
Listl=userRepository.findAll();
returnl;
}
@RequestMapping(value="/findallByPage")
publicPagefindAllByPage(){
Sortsort=newSort(Sort.Direction.ASC,"id");
Pageablepageable=newPageRequest(2,6,sort);
Pagepage=userRepository.findAll(pageable);
returnpage;
}
@RequestMapping(value="/findByName")
publicListfindByName(@RequestParamStringname){
Listlist=userRepository.findByName(name);
returnlist;
}
@RequestMapping(value="/findByAge")
publicListfindByAge(@RequestParamintage){
Listlist=userRepository.findByAge(age);
returnlist;
}
@RequestMapping(value="/findBySex")
publicListfindBySex(@RequestParamStringsex){
Listlist=userRepository.findBySex(sex);
returnlist;
}
@RequestMapping(value="/findByNameAndSex")
publicUserfindByNameAndSex(@RequestParamStringname,@RequestParamStringsex){
Userlist=userRepository.findByNameAndSex(name,sex);
returnlist;
}
}
//User
packagecom.example.myproject.domain;
importjavax.persistence.*;
/**
*Createdbylenovoon2017/4/19.
*/
@Entity
publicclassUser{
@Id
@GeneratedValue()
privateIntegerid;
@Column
privateStringname;
@Column
privateStringsex;
@Column
privateintage;
publicIntegergetId(){
returnid;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
}
以上这篇spring-data-jpa实现增删改查以及分页操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。