美文网首页
Spring Data JPA

Spring Data JPA

作者: 田文健 | 来源:发表于2019-03-09 16:16 被阅读0次

JPA 是Java持久化的一种API规范,Spring Data JPA在JPA之上做了一些扩展。而hibernate是支持JPA的一个ORM框架。
如何使用Spring Data JPA呢,以Spring boot作为例子,加入依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

在application.yml中的Spring节点下面配置:

spring:
  jpa:
    hibernate:
      #可选配置 create create-drop update validate
      ddl-auto: update
    show-sql: true
    database: MYSQL #这里使用MySQL

然后新建一个实体类

package xyz.twj.micro.service.enties;

import javax.persistence.*;
import java.util.Date;

@Entity
public class UserEntity {

    @Id  //主键
    @GeneratedValue  //自动生成的值
    private Integer id;

    private String name;

    @Temporal(TemporalType.DATE) //定义时间类型
    private Date birthday;

    @Column(insertable = false, updatable = false) //不需要插入和更新的字段
    @Temporal(TemporalType.TIMESTAMP)
    private Date ctime;

    @Transient  //不需要持久化的字段
    private Integer minAge;

    //get/set方法........
}

这个时候启动项目,如果数据库没有建表,那么hibernate会自动在数据库中建表。
CURD操作,新建Dao接口:

public interface UserRepository extends JpaRepository<UserEntity, Integer>, JpaSpecificationExecutor {

}

这个接口继承的JpaRepository接口中定义了常用的简单操作,并且spring在运行时动态代理接口的实现类,所以直接在bean中声明即可:


/**
 * @author : TianWenjian
 */
@RestController
public class DemoController {

    @Autowired
    UserRepository userRepository;

    @GetMapping("/micro-service")
    public Map service(){

        return ResultUtils.succeed("ok", userRepository.findAll());
    }

    @GetMapping("/add")
    public Map add(){
        UserEntity userEntity = new UserEntity();
        userEntity.setBirthday(new Date());
        userEntity.setName("小星");

        userRepository.save(userEntity);
        return ResultUtils.succeed("ok");
    }

    @GetMapping("/update")
    public Map update(){
        UserEntity userEntity = new UserEntity();
        userEntity.setBirthday(new Date());
        userEntity.setName("小刚");
        userEntity.setId(2);

        userRepository.save(userEntity);
        return ResultUtils.succeed("ok");
    }
}

当然简单的查询操作满足不了项目要求,Spring Data JPA还支持原生SQL、Criteria,QueryDSL多种查询方式。(未完待续)

相关文章

网友评论

      本文标题:Spring Data JPA

      本文链接:https://www.haomeiwen.com/subject/cknspqtx.html