这是我在 StackOverflow 中的第一个问题,正如建议的那样,我查看了其他类似的问题,并尝试将他们的回答用于我的问题。到目前为止,没有运气。
情况如下:
我在 JPA 中有一个自定义查询。
@Query(value="SELECT u.str_id,u.str_exercise_name, u.str_target_body_part,u.char_effect FROM training_schema.exercise_entity u WHERE u.str_exercise_name = ?1 and u.str_target_body_part= ?2", nativeQuery=true)
ExerciseEntity findExerciseEntityByNameAndTargetBodyPart(String str_exercise_name,String str_target_body_part);
如果我删除列的名称(u.str_id、u.str_exercise_name、u.str_target_body_part、u.char_effect)并将查询替换为:
@Query(value="SELECT u FROM training_schema.exercise_entity u WHERE u.str_exercise_name = ?1 and u.str_target_body_part= ?2", nativeQuery=true)
ExerciseEntity findExerciseEntityByNameAndTargetBodyPart(String str_exercise_name,String str_target_body_part);
我收到以下错误:
"The column name str_id was not found in this ResultSet"
当我提到所有列时并没有出现错误并且在我使用别名'u'时生成错误这一事实没有意义,因为这意味着如果我不得不使用一个更大的表,比如 10列,我将不得不把它们都写出来。
还有一条希望有所帮助的信息:对于我使用“u”而不是列名的查询版本,只有在找到匹配记录时才会生成错误。对于从数据库返回空值,没有问题。
使用 Java Spring 和 PostgresSQL。