我正在try 创建一个PostgreSQL查询,并使用entityManger创建查询,但在创建过程中遇到错误.

原因:org.hibernate.query.sqm.ParsingException:行1:7在输入‘SELECT*’时没有可行的替代方法 在org.hibernate.query.hql.internal.StandardHqlTranslator$1.syntaxError(StandardHqlTranslator.java:46)

此查询在SQL控制台中运行良好

SELECT * FROM user_details where user_name = ? LIMIT 1

@Component
@RequiredArgsConstructor
public class UserDaoImp implements UserDao {

    private final EntityManagerFactory entityManagerFactory;

    private static final String FIND_USER_BY_NAME =
            "SELECT * FROM user_details where user_name = ? LIMIT 1";

    @Override
    public User findUserByName(String userName) {
        TypedQuery<User> query = getEntityManager().createQuery(FIND_USER_BY_NAME, User.class);
        query.setParameter("user_name", userName);

        return query.getSingleResult();
    }

不知道我错过了哪里

推荐答案

您报告的问题的原因是在带有Hibernate的JPA中使用原生SQL查询.使用实体和属性名称以及位置参数来更正它.试试这个更新后的代码;

@Component
@RequiredArgsConstructor
public class UserDaoImp implements UserDao {

    private final EntityManagerFactory entityManagerFactory;

    private static final String FIND_USER_BY_NAME =
            "SELECT u FROM User u WHERE u.userName = ?1";

    @Override
    public User findUserByName(String userName) {
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        try {
            TypedQuery<User> query = entityManager.createQuery(FIND_USER_BY_NAME, User.class);
            query.setParameter(1, userName);

            return query.getSingleResult();
        } finally {
            entityManager.close();
        }
    }
}

希望它能奏效:)

Java相关问答推荐

使用log 4j2格式的Hibernate 显示SQL日志(log)

如何使用CSS为选定但未聚焦的表格行设置背景 colored颜色 ?

Springdoc Whitelabel Error Page with Spring V3

DTO到实体,反之亦然,控制器和服务之间的哪一层应该处理转换?

在Java Swing Paint应用程序中捕获快速鼠标移动时遇到困难

我无法获取我的Java Spring应用程序的Logback跟踪日志(log)输出

如何使用值中包含与号的查询参数创建一个java.net.URI

解释左移在Java中的工作原理

当Volatile关键字真的是必要的时候?

使用UTC时区将startDatetime转换为本地时间

使用用户引入的参数生成人员数组

Domino Designer 14中的保存代理添加了重影库

如何在Cosmos DB(Java SDK)中增加默认响应大小

如何使用路径过渡方法使 node 绕圆旋转?

垃圾收集时间长,会丢弃网络连接,但不会在Kubernetes中反弹Pod

FETCH类型设置为LAZY,但它仍会发送第二个请求

如何在EL处理器中定义带有命名空间的变量?

JavaFX标签中的奇怪字符

具有 DayOfWeek 列表的 JPA 实体

在对象列表上调用提取后,如何判断没有值为空?