org.hibernate.hql.internal.ast.QuerySyntaxException: *** is not mapped [from <model_name>]

@PersistenceContext
    private EntityManager entityManager;

    public List<User> findAll() {
        Query query = entityManager.createQuery("from User");
        return query.getResultList();
    }

在执行上面代码时抛出了标题的错误,在网上搜了半个小时,终于还是stackoverflow上找到了结果,国内的教程99%都指向一个问题,hql语句中表名写错了,应该是定义的Entity名字,而非数据库中的名字。
当然,如果这样确实会抛出这个错误,可我没写错,就是实体类的名字,所以只能继续搜。
最后发现是因为我的项目是聚合项目,实体类与实际使用的业务类不在同一项目内,所以springboot没有扫描到定义类,找不到类所以抛出这个问题,知道问题就知道如何解决,在业务类所在项目的启动类中,加上如下代码:
@EntityScan(basePackages = "com.heping.Entity")
指定Entity类所在的包名,这样即可
stackoverflow地址
最后附上测试代码github地址
github

posted @ 2020-07-07 10:18  愉快编程  阅读(467)  评论(0编辑  收藏  举报