hibernate: неожиданная ошибка токена при пользовательском запросе - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь создать двойное внутреннее объединение для своих сущностей

BundleRepository:

@Query("select b from Bundle b inner join BundlePlan p ON b.bundle_code = p.bundle_code "
        + "inner join PlanBenefit e ON p.plan_code = e.plan_code"
        + "where b.bundle_code = ?1")
List<Bundle> findBundlePlanInfo(String bundle_code);

BundleService:

public List<Bundle> getBundlePlanInfoByBundleCode(String bundle_code);

BundleServiceImpl:

@Override
public List<Bundle> getBundlePlanInfoByBundleCode(String bundle_code) {
    return (List<Bundle>) bundleRepository.findBundlePlanInfo(bundle_code);
}

BundleController:

@RequestMapping(value="Bundle/{bundle_code}", method=RequestMethod.GET)
public ModelAndView bundleProfile(@PathVariable("bundle_code") String bundle_code) {
    ModelAndView model = new ModelAndView("bundle_profile");
    List<Bundle> bundlePlanInfo = bundleService.getBundlePlanInfoByBundleCode(bundle_code);
    model.addObject("bundlePlanInfo",bundlePlanInfo);

    return model;
}

И я даю несколько ошибок, подобных этой

unexpected token: b near line 1, column 212 [select b from com.rtc_insurance.model.Bundle b inner join com.rtc_insurance.model.BundlePlan p ON b.bundle_code = p.bundle_code inner join com.rtc_insurance.model.PlanBenefit e ON p.plan_code = e.plan_codewhere b.bundle_code = ?1]

и этой

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bundleController': Unsatisfied dependency expressed through field 'bundleService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bundleServiceImpl': Unsatisfied dependency expressed through field 'bundleRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bundleRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.rtc_insurance.repository.BundleRepository.findBundlePlanInfo(java.lang.String)!

1 Ответ

0 голосов
/ 27 сентября 2018

неожиданный токен: b явно подсказывает, что есть какая-то проблема с b.bundle_code.

Дайте место перед предложением where, как показано ниже.

@Query("select b from Bundle b inner join BundlePlan p ON b.bundle_code = p.bundle_code "
        + "inner join PlanBenefit e ON p.plan_code = e.plan_code"
        + " where b.bundle_code = ?1")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...