错误:抽象模式类型未知

时间:2013-09-26 11:55:21

标签: java mysql persistence

我不明白为什么会收到此错误:

//EX[2,1,["java.lang.IllegalArgumentException/1755012560",
"An exception occurred while creating a query in EntityManager: 
\r\nException Description: Problem compiling [SELECT u FROM Users u]. \n[14, 19] 
The abstract schema type \x27Users\x27 is unknown."],0,7]

看起来所有的配置都是正确的,但是我得到了这个错误。 请帮忙。我的配置如下:

MySql表:

CREATE TABLE `users` (
  `USER_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `USERNAME` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `PASSWORD` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `ENABLED` tinyint(1) NOT NULL,
  `firstname` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `lastname` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `email` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`USER_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

实体:

package com.val.dogovora.entity;
import javax.persistence.*;
import java.io.Serializable;
@Entity
public class Users implements Serializable {
    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private int USER_ID;
    private String USERNAME;
    private String PASSWORD;
    private int ENABLED;
    private String firstname;
    private String lastname;
    private String email;

    public Users() {
    }
    public Users(String USERNAME, String PASSWORD, int ENABLED, String firstname, String lastname, String email) {
        this.USERNAME = USERNAME;
        this.PASSWORD = PASSWORD;
        this.ENABLED = ENABLED;
        this.firstname = firstname;
        this.lastname = lastname;
        this.email = email;
    }
Getters and Setters...
}

的persistence.xml

<class>com.val.dogovora.entity.Users</class>

EntityManagerFactory emf = Persistence.createEntityManagerFactory("DogovoraPool");
EntityManager em = emf.createEntityManager();
TypedQuery<Users> query = em.createQuery("SELECT u FROM Users u", Users.class);

1 个答案:

答案 0 :(得分:0)

我想我找到了错误的原因。在我将项目从Eclipse转换为Intellij Idea之前。文件夹my_project_name/war/web-if/classes仍为旧文件。我删除了这个文件夹,现在我的项目没有任何错误。但我不明白,为什么Intellij Idea会使用这些旧类,如果它有自己的文件夹my_project_name/out