Я получил «QueryException: позиционный параметр в стиле JPA не был целочисленным ординалом», который я пытаюсь решить путем решения других, например org.hibernate.QueryException: позиционный параметр в стиле JPA не был интегральным ординалом но все равно не работает.
Я пытаюсь жестко закодировать форму изменения? 1 для некоторых данных, которые уже есть в базе данных, и она работает, но после изменения на? 1 снова выдает ошибку.
--- Перед жестким кодом (есть ошибка) - В репозитории -
@Query(
value = "SELECT user_att_workshop.id, user_att_workshop.user_id, user_att_workshop.workshop_att_id, skill.skill_name, user_att_workshop.skill_score " +
"FROM user_att_workshop LEFT JOIN skill on user_att_workshop.skill_id = skill.id " +
"WHERE user_att_workshop.user_id = ?1 " +
"AND user_att_workshop.workshop_att_id = ?2;",
nativeQuery = true
)
public List<UserScoreByWorkshopAtt> findUserScoreByUserIdAndWorkshopId(int userId, int workshopId);
- В службе -
public List<UserScoreByWorkshopAtt> findUserScoreByUserIdAndWorkshopIdtest(
int userId,
int workshopId) {
return
userScoreByWorkshopAttRepository.findUserScoreByUserIdAndWorkshopId(
userId,
workshopId
);
}
- В контроллере -
List<UserScoreByWorkshopAtt> getUserScooreByUserId(
@PathVariable("user_id") int userId,
@PathVariable("workshop_id") int workshopId) {
return userScoreByWorkshopAttService.findUserScoreByUserIdAndWorkshopIdtest(
userId,
workshopId
);
}
--- После жесткого кода (может работать и не иметь ошибок) - В репозитории -
@Query(value = "SELECT user_att_workshop.id, user_att_workshop.user_id, user_att_workshop.workshop_att_id, skill.skill_name, user_att_workshop.skill_score FROM user_att_workshop LEFT JOIN skill on user_att_workshop.skill_id = skill.id WHERE user_att_workshop.user_id = 5 AND user_att_workshop.workshop_att_id = 2;", nativeQuery = true)
public List<UserScoreByWorkshopAtt> findUserScoreByUserIdAndWorkshopId();
- В службе -
public List<UserScoreByWorkshopAtt> findUserScoreByUserIdAndWorkshopIdtest() {
return userScoreByWorkshopAttRepository.findUserScoreByUserIdAndWorkshopId();
}
- В контроллере -
List<UserScoreByWorkshopAtt> getUserScooreByUserId(@PathVariable("user_id") int userId,
@PathVariable("workshop_id") int workshopId) {
return userScoreByWorkshopAttService.findUserScoreByUserIdAndWorkshopIdtest();
}
Вызывается: org.hibernate.QueryException: позиционный параметр в стиле JPA не является целочисленным порядковым номером в org.hibernate.engine.query.spi.ParameterParser.parse (ParameterParser.java:195) в org.hibernate.engine.query.spi.ParamLocationRecognizer.parseLocations (ParamLocationRecognizer.java:56) в org.hibernate.engine.query.internal.NativeQueryInterpreterStandardImpl.getParameterMetadata (NativeQueryInterpreterStandardImpl.java:30) в org.hibernate.engine.query.spi.Mache.PlayerClayerClayerClayerClayerClayerClayerClayer.hibernate.internal.AbstractSharedSessionContract.getNativeQueryImplementor (AbstractSharedSessionContract.java:1000) ... еще 85