SpringData JPA-自定义Repository接口

一)如果SpringData提供的JPA接口没有我们需要的查询方式,也是可以自定义Repository接口的
1.1)自定义的规则
1.创建自定义接口
2.使用目标接口(dao层接口)实现自定义接口,并对方法进行实现
3.使用目标接口(dao层接口)实现的时候需要注入EntityManager对象完成对数据库的操作
4.目标接口(dao层接口)实现自定义接口的时候实现类的名称必须是目标接口的名称+Impl,名称会由SpringData解析
5.目标接口(dao层接口)必须继承自定义接口
1.2)实例眼
1):创建自定义接口


/**
 * @project_name:hibernate02
 * @date:2019/8/21:09:35
 * @author:shinelon
 * @Describe:自定义MyUsersRepository接口
 */
public interface MyUsersRepository {
    //提供方法
    Users findUsersById(Integer userid);
}

2)目标接口实现自定义接口
注意名字Spring会对接口的名字进行解析规范是目标接口的名字加上Impl
案例中UserDaoFive接口为需要一个自定义方法的目标接口,那么名字的规范为UserDaoFiveImpl,分为两部分

/**
 * @project_name:hibernate02
 * @date:2019/8/21:09:37
 * @author:shinelon
 * @Describe:由目标接口(UserDaoFive)实现自定义接口,并且注入EntityManager对象,注意名字规范
 */
public class UserDaoFiveImpl  implements  MyUsersRepository{

    @PersistenceContext(name = "entityManagerFactory")
    private EntityManager entityManager;

    @Override
    public Users findUsersById(Integer userid) {
        System.out.println("MyUsersRepository......");
        return entityManager.find(Users.class,userid);
    }
}

3)目标接口继承自定义接口

/**
 * @project_name:hibernate02
 * @date:2019/8/20:17:31
 * @author:shinelon
 * @Describe:在使用JpaSpecificationExecutor接口的实现需要和Repository体系接接口一起使用不然无法完成
 *            对象的注入
 */
public interface UserDaoFive extends JpaRepository<Users,Integer>, JpaSpecificationExecutor<Users>,MyUsersRepository {

}

4)接口测试

@Autowired
private UserDaoFive userDaoFive;



/**
 * 测试自定义接口
 */
@Test
public void test8(){
    Users users = this.userDaoFive.findUsersById(3);
    System.out.println(users);
}

5)结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值