前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot 之 Spring Data JPA 二 ( Query By Example)1 新建Spring Boot工程2 新建实体3 新建Repository4 新建一Service

Spring Boot 之 Spring Data JPA 二 ( Query By Example)1 新建Spring Boot工程2 新建实体3 新建Repository4 新建一Service

作者头像
孙亖
发布2018-06-07 12:23:08
1.2K0
发布2018-06-07 12:23:08
举报
文章被收录于专栏:编程直播室

今天继续学习JPA,但是IDE工具变为了IntelliJ IDEA,其实多数我还是更喜欢Eclipse系列,但是Android Studio什么的,多Get一个技能也不是坏事。

1 新建Spring Boot工程

IntelliJ IDEA 新建Spring Initializr工程

Next,然后填写项目信息:

项目信息

看上面,我把语言改成了Kotlin,因为我最近在学习Kotlin,所以,你又get到新技能了。继续Next

项目依赖选择

依赖,我们这里选择了JPA和一种数据库驱动。Next

项目名称位置信息

项目名称和位置,这里项目创建完毕,点击Finisth等待项目初始化完毕(主要是下载模版和依赖)。

代码结构

除了代码由java改为kotlin,其他没有变化。

2 新建实体

我们先建一个包,名为cn.techcave.demo.jpa.domain,在此包下通过新建一个kotlin Clasee来创建名为Record的实体,具体代码如下:

代码语言:javascript
复制
package cn.techcave.demo.jpa.domain

import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id

@Entity
data class Record(
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        var id: Long? = null,
        var name:String? = null,
        var value: Double? = null
) {
}

3 新建Repository

对于Repository,我的理解就是dao,代码说话:

代码语言:javascript
复制
package cn.techcave.demo.jpa.repository

import cn.techcave.demo.jpa.domain.Record
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository

@Repository
interface RecordRepo :JpaRepository<Record, Long> {
}

超简单好不好,我都不想说话了。

4 新建一Service吧

好了,默默的看代码

代码语言:javascript
复制
package cn.techcave.demo.jpa.service

import cn.techcave.demo.jpa.domain.Record
import cn.techcave.demo.jpa.repository.RecordRepo
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.data.domain.Example
import org.springframework.stereotype.Service
import org.springframework.data.domain.ExampleMatcher
import org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith


@Service
class RecordService {

    @Autowired
    lateinit var recRepo: RecordRepo
    fun qbeRecord(rec: Record): Record? {
        val matcher = ExampleMatcher.matching()
                .withIgnorePaths("value")//忽略value属性
                .withIncludeNullValues()//包含空值
                .withMatcher("name", startsWith().ignoreCase())//字段name,匹配开始,忽略大小写

        val example = Example.of(rec, matcher)
        return recRepo.findOne(example)
    }

    fun findOne(id:Long): Record? {
        return recRepo.findOne(id)
    }

    fun newRecored(rec: Record) {
        recRepo.save(rec)
    }
}

qbeRecord方法就是Query By Example 的使用例子

原文地址

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.11.15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 新建Spring Boot工程
  • 2 新建实体
  • 3 新建Repository
  • 4 新建一Service吧
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档