@Query,Repository出错

由于我的实体有关系,可能在@Query出错? 哪个存储库包含错误。

创建名为“clickRepository”的bean时出错:init方法的调用失败; 嵌套exception是java.lang.IllegalArgumentException:对于方法public abstract java.lang.String com.qoobico.remindme.server.repository.ClickRepository.sent(java.lang.String,long)的查询,validation失败!

调节器

  @Autowired private ClickService service; /* ie information about fullname_client, id_banner sent to server from client */ @RequestMapping(value = "/sentemail", method = RequestMethod.POST) @ResponseBody public String sentClick(@RequestParam ("fullnameClient") String fullnameClient,@RequestParam ("idbanners") long idbanners) { return service.sent(fullnameClient, idbanners); } 

知识库

 @Query("SELECT c.fullnameClient FROM Click AS c join c.idBanner Banners b WHERE b.idBanner = :idbanners AND c.fullnameClient = :fullnameClient") String sent(@Param("fullnameClient") String fullnameClient, @Param("idbanners") long idbanners); 

实体点击

 @Id @Column(name = "id_click", unique = true, nullable = false) @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increment") private long idClick; @ManyToOne(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.PERSIST}) @JoinColumn(name = "id_banners", nullable = false) private Banners idbanners; @Column(name = "fullname_client", nullable = false, length = 50) private String fullnameClient; 

实体横幅

 @Id @Column(name = "id_banner", unique = true, nullable = false) @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increment") private long idBanner; @OneToMany(fetch = FetchType.EAGER, mappedBy = "banners") private Set businessbanners; @OneToMany(fetch = FetchType.EAGER, mappedBy = "idbanners") private Set clicks; 

错误

org.springframework.beans.factory.BeanCreationException:创建名为’clickController’的bean时出错:注入自动连接的依赖项失败; 嵌套exception是org.springframework.beans.factory.BeanCreationException:无法自动assembly字段:private com.qoobico.remindme.server.service.ClickService com.qoobico.remindme.server.controller.ClickController.service; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’clickServiceImpl’的bean时出错:注入自动连接的依赖项失败; 嵌套exception是org.springframework.beans.factory.BeanCreationException:无法自动assembly字段:private com.qoobico.remindme.server.repository.ClickRepository com.qoobico.remindme.server.service.ClickServiceImpl.clickRepository; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’clickRepository’的bean时出错:init方法的调用失败; 嵌套exception是java.lang.IllegalArgumentException:对于方法public abstract java.lang.String com.qoobico.remindme.server.repository.ClickRepository.sent(java.lang.String,long)的查询,validation失败!

您的参数名称不同。 尝试这个:

  @Query("SELECT c.fullnameClient FROM Click AS c join c.idbanners b WHERE b.idBanner = :idbanners AND c.fullnameClient = :fullnameClient") String sent(@Param("fullnameClient") String fullnameClient, @Param("idbanners ") long idbanners); 

更新

好吧你的加入是错的..而不是c加入c.IdBanner ..它应该是c.idbanners。