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

有几个坑一定要注意:

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

@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.

*/

@Transactional

public 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.

*/

@Entity

public 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实现增删改查以及分页操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是 spring-data-jpa实现增删改查以及分页操作方法 的全部内容, 来源链接: utcz.com/z/359527.html

回到顶部