您的位置:首页 > 编程语言 > Java开发

spring boot中使用spring-data-jpa

2017-04-08 21:01 465 查看
在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.
*/
@Entity
public 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.
*/
@Controller
public 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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息