Mysql Hibernate QuerySyntaxException,未映射表

Mysql Hibernate QuerySyntaxException,未映射表,mysql,sql,spring,hibernate,Mysql,Sql,Spring,Hibernate,我正在关注这个。我已经添加了另一个DAO,在这里我正在检索admin_roles表。方法如下所示 public List findAllAdminRoleByUserName(String userName) { List<AdminRoles> users = new ArrayList<AdminRoles>(); Query hqlQuery = sessionFactory.getCurrentSession().createQuery("fro

我正在关注这个。我已经添加了另一个DAO,在这里我正在检索admin_roles表。方法如下所示

public List findAllAdminRoleByUserName(String userName) {
    List<AdminRoles> users = new ArrayList<AdminRoles>();

    Query hqlQuery = sessionFactory.getCurrentSession().createQuery("from admin_roles AdminRoles where AdminRoles.username = ?");
    users =  hqlQuery.setString(0, userName).list();

    if (users.size() > 0) {
        return users;
    } else {
        return null;
    }
}
我可以从本教程中提到的admin表中获取值,并且我还创建了一些其他表,可以从中获取值。但只有此表未被映射。我还尝试将表的名称从“admin_roles”更改为adminroles(在数据库和代码中),但仍然得到相同的错误

相关类如下所示。实体注释也是javax

@Entity
@Table(name = "admin_roles", uniqueConstraints = @UniqueConstraint(columnNames = { "role", "username" }))
public class AdminRoles{

我错过什么了吗?提前感谢

您需要在查询中使用实体名称。试着这样做:

"from AdminRoles AR where AR.username = ?"

您需要在查询中使用实体名称。试着这样做:

"from AdminRoles AR where AR.username = ?"

您需要在查询中使用实体名称。试着这样做:

"from AdminRoles AR where AR.username = ?"

您需要在查询中使用实体名称。试着这样做:

"from AdminRoles AR where AR.username = ?"

您混淆了表和实体。表是关系数据库的概念。它们被映射到实体,即Java类。HQL使用实体。总是。从来没有桌子

顺便说一句,消息不是“表未映射”。这是“管理员角色未映射”。这是非常不同的。HQL使用实体,因此它希望查询中的
admin\u角色
是映射实体。不是表名。而且您没有任何名为
admin\u roles
的实体

查询应该是

select ar from AdminRoles ar where ar.username = ?

当然,这假设在
AdminRoles
实体类中有一个名为
username
的映射字段/属性

您混淆了表和实体。表是关系数据库的概念。它们被映射到实体,即Java类。HQL使用实体。总是。从来没有桌子

顺便说一句,消息不是“表未映射”。这是“管理员角色未映射”。这是非常不同的。HQL使用实体,因此它希望查询中的
admin\u角色
是映射实体。不是表名。而且您没有任何名为
admin\u roles
的实体

查询应该是

select ar from AdminRoles ar where ar.username = ?

当然,这假设在
AdminRoles
实体类中有一个名为
username
的映射字段/属性

您混淆了表和实体。表是关系数据库的概念。它们被映射到实体,即Java类。HQL使用实体。总是。从来没有桌子

顺便说一句,消息不是“表未映射”。这是“管理员角色未映射”。这是非常不同的。HQL使用实体,因此它希望查询中的
admin\u角色
是映射实体。不是表名。而且您没有任何名为
admin\u roles
的实体

查询应该是

select ar from AdminRoles ar where ar.username = ?

当然,这假设在
AdminRoles
实体类中有一个名为
username
的映射字段/属性

您混淆了表和实体。表是关系数据库的概念。它们被映射到实体,即Java类。HQL使用实体。总是。从来没有桌子

顺便说一句,消息不是“表未映射”。这是“管理员角色未映射”。这是非常不同的。HQL使用实体,因此它希望查询中的
admin\u角色
是映射实体。不是表名。而且您没有任何名为
admin\u roles
的实体

查询应该是

select ar from AdminRoles ar where ar.username = ?
当然,这假设在
AdminRoles
实体类中有一个名为
username
的映射字段/属性