Spring Data Jpa 自定义方法实现问题
2015-01-27 14:33
218 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:18px;"> 最近项目中用到了Spring Data JPA,在里面我继承了一个PagingAndSortingRepository的接口,期望的是利用Spring Data JPA提供的便利。同时我也希望自己有一个能定义自己方法的接口,因为单纯靠Spring Data JPA中提供的功能还是有很多业务逻辑实现不了,我必须自己实现。那么问题来了:Spring Data JPA好处就是让我们省去了实现接口的过程,按照他们给的命名规范他们会自动实现我们的业务逻辑,那我们自己实现的接口要怎么注入到其中呢? </span></span>
上网查找了好多资料,都没有说的太详细,更多的是照搬胡抄,这里是我亲自写的,可能很多人会用到,不多说上代码:
自己的接口:
<span style="font-size:18px;">package com.mhc.dao; import org.springframework.stereotype.Repository; import com.mhc.entity.Person; @Repository public interface DeviceCategoryDaoCustom { public Person getsFather(Person person); } </span>
主接口:
<span style="font-size:18px;">public interface DeviceCategoryDao extends PagingAndSortingRepository<Person, String>, DeviceCategoryDaoCustom { }</span>上面是我的接口继承PagingAndSortingRepository、DeviceCategoryDaoCustom(我自己方法的接口)。然后我新建一个类来实现我自己的接口:
<span style="font-size:18px;">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.springframework.stereotype.Service; 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; } }</span>
在这里有个需要注意的地方,就是用不用implements的问题,如果用的话,他就会调用编译器的实现功能去实现我们自定义的接口也就是:DevicecategoryCustom。如果去掉的话,他会去实现DeviceCategoryDao,那么会有人问,他怎么去自己找的呢。事实上他是根据后面的Impl来寻找的。他不会提示@override,不过你写相同的方法他还是会覆盖(覆盖主接口中的同名方法,如果有的话)DeviceCategoryDao中的同名方法。你可以去尝试一下。
同时加上@Repository把他加入到Bean里面,这样下次用这个方法的时候Repository会自动找到他的(话说Spring团队真心NB)。然后我们交给spring托管、测试。。。。。Ok 真心赞
相关文章推荐
- Spring Data Jpa 自定义方法实现问题
- (十三)SpringBoot之Spring-Data-Jpa(二)CRUD实现以及添加自定义方法
- 微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
- (十三)SpringBoot之Spring-Data-Jpa(二)CRUD实现以及添加自定义方法
- VO实现类自定义方法参数问题
- fck_editor 不采用正则表达式实现插入任意自定义图片标签的解决方法
- 自定义reportviewer打印设置按钮的另类实现方法
- 背包问题经典实现方法
- VS2005下自定义用户控件 如何实现属性及方法的相关智能提示
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明。
- php优化及高效提速问题的实现方法第1/2页
- VS2005下自定义用户控件 如何实现属性及方法的相关智能提示
- 从面向结构到面向对象-----josephus问题(方法四:面向对象的实现)
- 【续】用ObjectDataSource实现自定义分页的心得总结,几种分页方法的性能对比
- 不在乎用的实现方法正不正宗,能解决我的问题就OK
- VS2003自定义封送拆收器不实现ICustomMarshaler接口问题的解决方法
- 实现工资自定义公式的计算方法示例
- 从面向结构到面向对象-----josephus问题(方法三:结构化方法的实现)
- 自定义表单的实现方法浅谈
- 处理JSP中文跨页面间传参乱码的问题有两种方法实现方法(每个搞JSP的最常遇到的问题之一) 实例版:)