spring boot中使用spring-data-jpa

来源:互联网 发布:什么变声软件好用 编辑:程序博客网 时间:2024/05/21 14:09

在spring boot中使用spring-data-jpa很方便,但是一些问题要注意

注解主键ID的时候导入包一定要注意,导入包的时候一定是以下示例,否则会出现no identifier specified for entity的错误

import javax.persistence.Id;import javax.persistence.*;

此外,在实体类中如果自己写了构造方法,一定要补上空的构造方法,否则运行可能会出现问题


使用toString()方法时,大部分时候需要重写该方法


以下是示例代码:

package com.example.domain;import javax.persistence.Id;import javax.persistence.*;/** * Created by lenovo on 2017/4/8. */@Entitypublic class User {    @GeneratedValue(strategy = GenerationType.AUTO)    @Id    private int id;    @Column(nullable = false)    private String name;    @Column(nullable = false)    private Integer age;    public User() {    }    public User(String name, Integer age) {        this.name = name;        this.age = age;    }    @GeneratedValue(strategy = GenerationType.AUTO)    @Id    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    @Override    public String toString() {        return "id: " + id + ", name: " + name + ", age: " + age;    }}

然后新建一个接口类继承自JpaRepository<>


package com.example.domain;import org.springframework.data.jpa.repository.JpaRepository;/** * Created by lenovo on 2017/4/8. */public interface UserRepository extends JpaRepository<User, Long> {    User findByName(String name);    User findByNameAndAge(String name, Integer age);}


在使用jdbctemplate的时候要注解@Autowired

以下是示例:

package com.example.web;import com.example.domain.User;import com.example.domain.UserRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;/** * Created by lenovo on 2017/4/8. */@Controllerpublic class TestControl {    @Autowired    private UserRepository userRepository;       @ResponseBody    @RequestMapping("/create")    public String Save() {        userRepository.save(new User("小明",20));        userRepository.save(new User("小红",19));        userRepository.save(new User("张三",20));        userRepository.save(new User("李四",20));        return "save success";    }    @ResponseBody    @RequestMapping("/findbyname")    public String findbyname() {        User user = userRepository.findByName("小明");        return user.toString();    }}




0 0
原创粉丝点击