首页 > 编程 > Java > 正文

spring-data-jpa实现增删改查以及分页操作方法

2019-11-26 10:17:07
字体:
来源:转载
供稿:网友

有几个坑一定要注意:

实现删除操作的时候一定要在各层类中 增加

@Transactional

注释,否则会一直报错

在自己使用@Query定义操作时,会碰到编译器报错,这个时候只需要禁用QL的语法检查即可

以下是部分代码:

//Repository

package com.example.myproject.dao;import com.example.myproject.domain.User;import org.springframework.data.domain.Page;import org.springframework.data.domain.Pageable;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.Modifying;import org.springframework.data.jpa.repository.Query;import org.springframework.data.repository.query.Param;import javax.transaction.Transactional;import java.util.List;/** * Created by lenovo on 2017/4/19. */@Transactionalpublic interface UserRepository extends JpaRepository<User,Long> {  void deleteById(int id);  void deleteByName(String name);  void deleteBySex(String sex);  void deleteByAge(int age);  void removeByNameAndAge(String name, int age);  @Modifying  @Query(value = "update user u set u.name = :newName where u.name = :oldName",nativeQuery = true)  void updateNameByName(@Param("oldName") String oldName, @Param("newName") String newName);  List<User> findAll();  Page<User> findAll(Pageable pageable);  List<User> findByName(String name);  List<User> findBySex(String sex);  List<User> findByAge(int age);  User findByNameAndSex(String name, String sex);}

//Controller

package com.example.myproject.web;  import com.example.myproject.dao.UserRepository; import com.example.myproject.domain.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;  import javax.transaction.Transactional; import java.util.List;  /**  * Created by lenovo on 2017/4/19.  */ @RestController @RequestMapping("/") @Transactional public class UserController {  @Autowired  private UserRepository userRepository;   @RequestMapping(value = "/userSave")  public String userSave(@RequestParam String name,@RequestParam String sex,@RequestParam int age) {   User user = new User();   user.setName(name);   user.setAge(age);   user.setSex(sex);   userRepository.save(user);   return "true";  }   @RequestMapping(value = "/deleteById")  public String deleteById(@RequestParam int id) {   userRepository.deleteById(id);   return "success";  }   @RequestMapping(value = "/deleteByName")  public String deleteByName(@RequestParam String name) {   userRepository.deleteByName(name);   return "success";  }   @RequestMapping(value = "/deleteBySex")  public String deleteBySex(@RequestParam String sex) {   userRepository.deleteBySex(sex);   return "success";  }   @RequestMapping(value = "/deleteByAge")  public String deleteByAge(@RequestParam int age) {   userRepository.deleteByAge(age);   return "success";  }   @RequestMapping(value = "/deleteByNameAndAge")  public String deleteByNameAndAge(@RequestParam String name, @RequestParam int age) {   userRepository.removeByNameAndAge(name,age);   return "success";  }   @RequestMapping(value = "/updateNameByName")  public String updateNameByName(@RequestParam String oldName, @RequestParam String newName) {   userRepository.updateNameByName(oldName,newName);   return "success";  }   @RequestMapping(value = "/findall")  public List<User> findAll() {   List<User> l =userRepository.findAll();   return l;  }   @RequestMapping(value = "/findallByPage")  public Page<User> findAllByPage() {   Sort sort = new Sort(Sort.Direction.ASC,"id");   Pageable pageable = new PageRequest(2,6,sort);   Page<User> page = userRepository.findAll(pageable);   return page;  }   @RequestMapping(value = "/findByName")  public List<User> findByName(@RequestParam String name) {   List<User> list =userRepository.findByName(name);   return list;  }   @RequestMapping(value = "/findByAge")  public List<User> findByAge(@RequestParam int age) {   List<User> list =userRepository.findByAge(age);   return list;  }   @RequestMapping(value = "/findBySex")  public List<User> findBySex(@RequestParam String sex) {   List<User> list =userRepository.findBySex(sex);   return list;  }   @RequestMapping(value = "/findByNameAndSex")  public User findByNameAndSex(@RequestParam String name, @RequestParam String sex) {   User list =userRepository.findByNameAndSex(name,sex);   return list;  } } 

//User

package com.example.myproject.domain;import javax.persistence.*;/** * Created by lenovo on 2017/4/19. */@Entitypublic class User { @Id @GeneratedValue() private Integer id; @Column private String name; @Column private String sex; @Column private int age; public Integer getId() {  return id; } public String getName() {  return name; } public void setName(String name) {  this.name = name; } public String getSex() {  return sex; } public void setSex(String sex) {  this.sex = sex; } public int getAge() {  return age; } public void setAge(int age) {  this.age = age; }}

以上这篇spring-data-jpa实现增删改查以及分页操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表