2017-10-13 89 views
0

我想實現通過此實現與春季數據JPA規範的投影:在Spring數據實現與規格投影JPA

https://github.com/pramoth/specification-with-projection

相關類如下:

規格:

public class TopicSpec { 
    public static Specification<Topic> idEq(String id){ 
     return (root, query, cb) -> cb.equal(root.get(Topic_.id),id); 
    } 
} 

@Repository 
    public interface TopicRepository extends JpaRepository<Topic,String>,JpaSpecificationExecutorWithProjection<Topic> { 
     public static interface TopicSimple{ 
      String getId(); 
      String getName(); 
    } 

     List<TopicSimple> findById(String id); 

    } 

測試

@Test 
     public void specificationWithProjection() { 
      Specification<Topic> where= Specifications.where(TopicSpec.idEq("Bir")); 
      List<Topic> all = topicRepository.findAll(where); 
      Assertions.assertThat(all).isNotEmpty(); 
    } 

我從一開始這個方法響應:

enter image description here

但是測試失敗。除了當我拉動gratub項目的時候,我可以成功運行測試。有沒有人對這個問題有任何意見?

整個項目可以在這裏找到: https://github.com/dengizik/projectionDemo

回答

0

我也問過同樣的問題,以項目Pramoth Suwanpech,誰還跟來檢查我的代碼,並給出答案的開發商。我的測試類應該已經實現測試對象是這樣的:

@Before 
public void init() { 
    Topic topic = new Topic(); 
    topic.setId("İki"); 
    topic.setName("Hello"); 
    topicRepository.save(topic); } 

使用此設置通過測試。