SpringDataJPA之自定义Repository

举报
波波烤鸭 发表于 2022/03/30 02:12:28 2022/03/30
【摘要】   有时候系统提供的接口中的方法并不足以满足我们的需求,这时我们就可以通过自定义Repository来扩展。 自定义Repository 1. 定义接口 /** * 自定义的Repository接...

  有时候系统提供的接口中的方法并不足以满足我们的需求,这时我们就可以通过自定义Repository来扩展。

自定义Repository

1. 定义接口

/**
 * 自定义的Repository接口
 */
public interface UsersRepository {
    public Users findUserById(Integer userid);
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.使用接口

/**
 * SpringDataJPA 实现JpaRepository
 * 泛型 第一个参数是对应的Pojo类型
 *      第二个参数是注解的包装类型
 *  使用自定义的Repository接口
 */
public interface UserDao extends JpaRepository<Users,
        Integer>, JpaSpecificationExecutor<Users>, UsersRepository {

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3.创建接口的实现类

/**
 * @program: spring-data-jpa-demo
 * @description: 创建接口的实现类
 * @author: 波波烤鸭
 * @create: 2019-05-18 20:31
 */
public  class UserDaoImpl implements UsersRepository {

    @Autowired
    private EntityManager em;

    @Override
    public Users findUserById(Integer userid) {
        System.out.println("MyRepository ....");
        return em.find(Users.class,userid);
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

4.单元测试

/**
 * @program: spring-data-jpa
 * @description: 单元测试
 * @author: 波波烤鸭
 * @create: 2019-05-18 09:48
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class TestDemo {

    @Autowired
    private UserDao usersDao;

    /**
     * 需求:根据用户 ID 查询数据
     */
    @Test
    public void test1(){
        Users users = this.usersDao.findUserById(6);
        System.out.println(users);
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在这里插入图片描述

文章来源: dpb-bobokaoya-sm.blog.csdn.net,作者:波波烤鸭,版权归原作者所有,如需转载,请联系作者。

原文链接:dpb-bobokaoya-sm.blog.csdn.net/article/details/90320237

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。