Mysql Hibernate QuerySyntaxException,未映射表
我正在关注这个。我已经添加了另一个DAO,在这里我正在检索admin_roles表。方法如下所示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
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
的映射字段/属性