java - JPA 找不到命名参数

标签 java hibernate jpa

我不断收到以下错误:“无法找到命名参数 [articleCommentId]”,但这对我来说没有意义,因为对我来说命名参数非常合适。 p>

public ArticleCommentForDisplay getCommentByArticleCommentId(BigInteger articleCommentId) {

    String queryString = "select c.article_comment_id,  "
            + "       c.article_id,  "
            + "       c.parent_comment_id, "
            + "       p.nickname, "
            + "       c.title,  "
            + "       c.comment, "
            + "       c.person_id, "
            + "       c.confirmed_user, "
            + "       c.comment_depth, "
            + "       c.moderation_rank, "
            + "       c.moderation_reason, "
            + "       c.hide, "
            + "       c.hide_reason, "
            + "       c.session_id, "
            + "       c.confirmation_uuid, "
            + "       c.created_timestamp, "
            + "       c.created_by_id, "
            + "       c.updated_timestamp, "
            + "       c.updated_by_id, "
            + "       c.update_action, "
            + "       null as comment_path "
            + "from article_comment c "
            + "   join person p "
            + "       on p.person_id = c.person_id "
            + "where c.article_comment_id = :articleCommentId; ";

    Query query = em.createNativeQuery(queryString, "ArticleCommentMap");
    query.setParameter("articleCommentId", articleCommentId);

    List <ArticleCommentForDisplay> articleComments = new ArrayList<>();
    articleComments = query.getResultList();
    ArticleCommentForDisplay theComment = articleComments.get(0);

    return (theComment);

}

这是包含相关错误的堆栈跟踪的摘录:

Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: could not locate named parameter [articleCommentId]
    at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:379)
    at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:72)
    at com.extremelatitudesoftware.content.ArticleCommentFacade.getCommentByArticleCommentId(ArticleCommentFacade.java:293)

最佳答案

我敢打赌这是由于您的查询字符串中有额外的 ;

SQL/HQL不需要分号结束

关于java - JPA 找不到命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13391384/

相关文章:

java - Spring jpa criteriaBuilder 在列表中搜索

java - 批量反编译提取的 Jar 中的 .Class 文件的批处理文件不留在原始目录中

sql - HQL 加入 - 预期加入的路径! hibernate

java - JPA/Hibernate + 从 onetomayrelation 获取特定项目

java - 如何在控制台中打印 Hibernate ID?

java - 如何按标识符或主键的顺序加载多个 Hibernate 实体

java - 如何创建 JPA 查询以按远程引用数量的降序返回对象?

java - 如何迭代所有的注册表项?

java - 如何修复这个 NullPointerException?

Java : Index out of bound exception when creating a string with no matching consecutive characters