首页 > 解决方案 > 我应该如何使用连接对 JPA 条件查询进行单元测试?还是不可能,只需添加集成测试?

问题描述

我有一个涉及三个实体的函数,并使用 JPA 的条件 API 创建了一个查询。

`

    CriteriaQuery<Entity1> qEntity = cb.createQuery(Entity1.class);
    Root<Entity1> rGroup = qEntity.from(Entity1.class);

    Join<Entity1, Entity2> jEntity2 = rEntity1.join(mEntity1ToEntity2);
    Join<Entity1, Entity3> jEntity3 = rEntity1.join(mEntity1ToEntity2);

    Predicate[] predicates = predicates(rEntity1, jEntity2, jEntity3, ...);
    qEntity1.where(predicates);
    TypedQuery<Entity1> typedQuery = em.createQuery(qEntity1);


    Search<Entity1> entity1Search = newEntity1Search(
        typedQuery.getResultList(), typedQuery.getResultList().size());

   // some other processing

    return entity1Search;

`

如何对该方法进行单元测试以检查 DAO 的结果是否正确?还是我应该添加一个集成测试来检查查询结果是否正确?

谢谢!

标签: mysqljpa

解决方案


推荐阅读