首页 > 作文

关于Spring Data Jpa 自定义方法实现问题

更新时间:2023-04-04 01:40:50 阅读: 评论:0

目录
spring data jpa 自定义方法的实现自己的接口主接口我新建一个类来实现一个人想着一个人我自己的接口spring data jpa自定义方法关键字

spring data jpa 自定义方法的实现

最近项目中用到了spring data jpa,在里面我继承了一个pagingandsortingrepository的接口,期望的是利用spring data jpa提供的便利。

同时我也希望自己有一个能定义自己方法的接口,因为单纯靠spring data jpa中提供的功能还是有很多业务逻辑实现不了,我必须自己实现。

那么问题来了:spring data jpa好处就是让我们省去了实现接口的过程,按照他们给的命名规范他们会自动实现我们的业务逻辑,那我们自己实现的接口要怎么注入到其中呢?

上网查找了好多资料,都没有说的太详细,更多的是照搬胡抄,这里是我亲自写的,可能很多人会用到,不多说上代码:

自己的接口

package com.mhc.dao; import org.springframework.stereotype.repository; import com.mhc.entity.person; @repositorypublic interface devicecategorydaocustom { public person getsfather(person person); }

主接口

public interface devicecategorydao extends  pagingandsortingrepository<person, string>, devicecategorydaocustom {  }

上面是我的接口继承pagingandsortingrepository、devicecategorydaocustom(我自己方法的接口)。

我新建一个类来实现我自己的接口

package com.mhc.dao; import javax.persistence.persistencecontext;import javax.transaction.transactional; import org.springframework.beans.factory.annotation.autowired;import org.springframework.data.repository.crudrepository;import鸡鸣 org.springframework.data.repository.norepositorybean;import org.springframework.stereotype.component;import org.springframework.stereotype.repository;import org.springfra苏格拉底的故事mework.stereotype.rvice; import com.mhc.entity.person; @repository("crudrepositorydaocustom")class devicecategorydaoimpl implements devicecategorydaocustom {  @transactional public person getsfather(person person) {  // todo auto-generated method stub  person father = new person();  father = person.getparentperson();  return father; }}

在这里有个需要注意的地方,就是用不用implements的问题,如果用的话,他就会调用编译器的实现功能去实现我们自定义的接口也就是:devicecategorycustom。

如果去掉的话,他会去实现devicecategorydao,那么会有人问,他怎么去自己找的呢。

事实上他是根据后面的impl来寻找的。他不会提示@override,不过你写相同的方法他还是会覆盖(覆盖主接口中的同名方法,如果有的话)devicecategorydao中的同名方法。你可以去尝试一下。

同时加上@repository把他加入到bean里面,这样下次用这个方法的时候r万圣节小故事epository会自动找到他的(话说spring团队真心nb)。然后我们交给spring托管、测试。。。。。ok 真心赞

spring data jpa自定义方法关键字

关键字方法名举例对应的sqlandfindbynameandagewhere name = ? and age = ?orfindbynameoragewhere name = ? or age = ?isfindbynameiswhere name = ?equalsfindbynameequalswhere name = ?betweenfindbyagebetweenwhere age 考研专业课between ? and ?lessthanfindbyagelessthanwhere age < ?lessthanequalsfindbyagelessthanequalwhere age <= ?greatorthanfindbyagegreaterthanwhere age > ?greatorthanequalsfindbyagegreaterthanequalwhere age >= ?afterfindbyageafterwhere age > ?beforefindbyagebeforewhere age < ?isnullfindbynameisnullwhere name is nullisnotnull,notnullfindbynameisnotnull,findbynamenotnullwhere name is not nullnotfindbynamenotwhere name <>?infindbyageinwhere age in (?)notinfindbyagenotinwhere age not in (?)notlikefindbynamenotlikewhere name not like ?likefindbynamelikewhere name like ?startingwithfindbynamestartingwithwhere name like ‘?%’endingwithfindbynameendingwithwhere name like ‘%?’containing,containsfindbynamecontaining,findbynamecontainswhere name like ‘%?%’orderbyfindbyorderbyagedescorder by age desctruefindbybosstruewhere boss = truefalfindbybossfalwhere boss = falignorecafindbynameignorecawhere upper(name) = upper(?)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 01:40:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/9d3c141bab2f044aa416640c13ac83ff.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:关于Spring Data Jpa 自定义方法实现问题.doc

本文 PDF 下载地址:关于Spring Data Jpa 自定义方法实现问题.pdf

标签:接口   方法   自己的   自定义
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图