2017-01-26 9 views
1

Возможно, ошибка в @Query из-за того, что у моей сущности есть отношение? В каком хранилище содержится ошибка.Ошибка в @Query, репозитории

Ошибка создания компонента с именем 'clickRepository': вызов init метод не выполнен; nested exception is java.lang.IllegalArgumentException: Ошибка проверки для запроса для метода public abstract java.lang.String com.qoobico.remindme.server.repository.ClickRepository.sent (java.lang.String, long)!

Контроллер

@Autowired 
private ClickService service; 

/* 
    i.e. 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); 
} 

Repository

@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); 

Entity Нажмите

@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; 

Entity Баннеры

@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<Businessbanner> businessbanners; 

@OneToMany(fetch = FetchType.EAGER, mappedBy = "idbanners") 
private Set<Click> clicks; 

Ошибка

org.springframework.beans.factory.BeanCreationException: Ошибка создании компонента с именем 'clickController': Инъекция autowired зависимостей не удалось; вложенное исключение org.springframework.beans.factory.BeanCreationException: Не удалось autowire поле: частный com.qoobico.remindme.server.service.ClickService com.qoobico.remindme.server.controller.ClickController.service; inested exception is org.springframework.beans.factory.BeanCreationException: Ошибка при создании bean-компонента с именем 'clickServiceImpl': инъекция неавторизованных зависимостей; вложенное исключение org.springframework.beans.factory.BeanCreationException: Не удалось autowire поле: частный com.qoobico.remindme.server.repository.ClickRepository com.qoobico.remindme.server.service.ClickServiceImpl.clickRepository; Вложенное исключение: org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'clickRepository': вызов метода init не удалось; nested exception is java.lang.IllegalArgumentException: Ошибка проверки для запроса для метода public abstract java.lang.String com.qoobico.remindme.server.repository.ClickRepository.sent (java.lang.String, long)!

+0

Возможно ошибка запроса. –

ответ

1

Ваши имена параметров различаются. Попробуйте это:

@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); 

Update

Ok ваш присоединиться к ошиблась .. а с присоединиться c.IdBanner .. это должно быть c.idbanners.

+0

, но щелкните также красным цветом подчеркивание –

+0

ok, но вы можете скомпилировать его и запустить? –

+0

Изменить файл.Добавить репозиторий, контроллер, объект –