spring data jpa 自定义接口实现
来源:互联网 发布:工业设计主流软件 编辑:程序博客网 时间:2024/05/16 05:46
没错,spring data jpa很优秀,但有一些东西,我们就想自己来,我除了想用你的,还想用我自己的
首先,我要spring data jpa的接口,为什么,因为很方便啊
public interface TaskDao extends JpaRepository<Task,Long>{}
然后我想自己定义一些接口,咋办呢,那我就再定义个接口bean吧,然后再定义一些接口方法
public interface TaskDaoCustom<T,ID>{ void method();}
那这里,我想要spring data jpa的,也想要我自己的,那我就继承吧
public interface TaskDao extends JpaRepository<Task,Long>,TaskDaoCustom<Task,Long>{}
这时候,你在service应该就可以用method()方法了,但是这时候,method是空的,我们得自己来实现它,那实现吧
public class TaskDaoImpl implements TaskDaoCustom{ @Override public void method() { // TODO Auto-generated method stub System.out.println("who are you !!"); }}
有心的朋友应该有注意到,为什么我实现TaskDaoCustom的bean不应该是TaskDaoCustomImpl吗?如果你这样子做的话,编译器就报错了
No property method found for type Task!
那为什么呢,因为任何继承了Repository(JpaRepository最终也是继承于Repository)spring都会为他生成一个实现类,因为TaskDao 继承于TaskDaoCustom,而TaskDaoCustom中的method不是spring data jpa规范查询方法的规则,如果就报找不到找不到属性了。
或许你会问,TaskDaoCustom不会有TaskDaoCustomImpl的实现类吗,按照spring文档说的,只要配置好实现的后缀名,就会用他来实现方法么,是的,我们是这样子配置后缀的,确实也有Impl。
<jpa:repositories base-package="com.liuxg.**.dao" repository-impl-postfix="Impl" query-lookup-strategy = "create-if-not-found" entity-manager-factory-ref="entityManagerFactory" transaction-manager-ref="transactionManager" > </jpa:repositories>
这里要纠正一下,这里的实现spring data jpa规定命名方法是继承于spring data jpa Repository的那个命名 + Impl,例如我们是TaskDao继承于JpaRepository,如果实现类应该是TaskDaoImpl,而不是TaskDaoCustomImpl。
spring data jpa 秉承约定大于实现,只要按照规定和约定来,就能省很多麻烦事。
到这里,你应该就能自己自定义接口了,但这个对于模块是起到了作用,如果我在搭建项目,我想直接,定义 一个BaseDao,然后自定义一些常用的公共方法,然后再利用spring data jpa的优点,只要子模块,继承于BaseDao,就能同时拥有自定义的公用方法和spring data jpa的优点,该怎么做??下一篇再看看??
- spring data jpa 自定义接口实现
- spring data jpa 自定义接口实现
- spring data jpa 自定义接口
- Spring Data Jpa 自定义方法实现问题
- Spring Data Jpa 自定义方法实现问题
- Spring Data自定义接口实现
- Spring技术内幕之Spring Data JPA-自定义Repository实现
- Spring Data JPA 自定义查询
- spring data 自定义接口
- spring data Jpa hibernate实现
- spring data jpa 内部接口参照表
- spring data jpa 定义全局接口BaseDao
- Spring Data JPA 简单查询--接口方法
- spring data jpa 定义全局接口BaseDao
- 利用AOP为Spring Data Jpa的接口Repository添加全局自定义过滤
- Spring Data Jpa自定义sql查询返回
- Spring Data Jpa 自定义属性查询规则
- Spring Data JPA自定义native 查询
- 课程练习一-Problem G
- 进公司的点点滴滴
- iOS-一个弹出菜单动画视图开源项目分享
- mybatis 异常 Mapped Statements collection already contains value for .......
- HDU Problem 1087Super Jumping! Jumping! Jumping!
- spring data jpa 自定义接口实现
- Android的webview控件和js脚本语言交互小例子
- 1044. 火星数字
- Linux makefile教程
- PHP安全的URL字符串base64编码和解码
- 1045. 快速排序
- C++第二次试验——作业
- 1046].划拳
- 【dotnet跨平台】如何启用远程访问asp.net mvc 5网站并指定端口?