Hibernate QuerySyntaxException:用户未映射

时间:2020-07-20 15:20:16

标签: java hibernate jpa

我正在尝试从休眠4迁移到休眠5。我仍然在Java 7中。

我的应用程序在最新版本4.12.03上可以正常使用,并且我没有遇到任何映射错误。 但是,当我尝试转到版本5(例如:5.0.12)时,遇到此映射错误:

org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped [from User where mail =:userMail]
    at fr.lis.xper3.security.dao.UserDao.read(UserDao.java:202)
    at fr.lis.xper3.security.dao.UserDao.read(UserDao.java:157)
    at fr.lis.xper3.security.services.UserManagementService.read(UserManagementService.java:91)
    at fr.lis.xper3.security.Xper3AuthenticationProvider.authenticate(Xper3AuthenticationProvider.java:35)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199)

我的Sql表是:

CREATE TABLE `User` (
  `id` bigint(20) NOT NULL,
  `admin` tinyint(1) NOT NULL,
  `familyName` varchar(255) NOT NULL,
  `firstName` varchar(255) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updateTime` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我的实体是:

@Entity
@Table(name = "User")
public class User implements Serializable {

    @Id
    @GeneratedValue
    private long id;

    @Column(nullable = false)
    private String familyName;

    @Column(nullable = false)
    private String firstName;

    @Column(nullable = false, unique = true)
    private String mail;

    @Column(nullable = false)
    private String password;

    @Column(nullable = false)
    private boolean admin = false;

...
}

还有我的DAO:

public static User read(Session session, String userMail) throws HibernateException {
        String queryString = "from " + User.class.getSimpleName() + " where mail =:userMail";
        return (User) session.createQuery(queryString).setParameter("userMail", userMail).uniqueResult();
    }

谢谢您的帮助。

西尔万

0 个答案:

没有答案
相关问题