2017-06-15 92 views
-1

我已经搜索了很长时间的这个问题,但答案没有帮助。org.hibernate.hql.ast.QuerySyntaxException:ts_user未映射[来自ts_user]

结果是一样的,也许原因是不同的。

该模型通过使用表注释与数据库关联。

模型如下:

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

 
    @Id 
 
    @Column(name = "id") 
 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
 
    private int id; 
 

 
    private String phone; 
 

 
    public int getId() { 
 
     return id; 
 
    } 
 

 
    public void setId(int id) { 
 
     this.id = id; 
 
    } 
 

 
    public String getPhone() { 
 
     return phone; 
 
    } 
 

 
    public void setPhone(String phone) { 
 
     this.phone = phone; 
 
    } 
 

 
    @Override 
 
    public String toString() { 
 
     return "User{" + 
 
       "id=" + id + 
 
       ", phone='" + phone + '\'' + 
 
       '}'; 
 
    } 
 
}

的DAO如下:

@Repository 
 
public class HibernateUserDAO implements UserDAO { 
 

 
    private SessionFactory sessionFactory; 
 

 
    @Autowired 
 
    public HibernateUserDAO(SessionFactory sessionFactory) { 
 
     this.sessionFactory = sessionFactory; 
 
    } 
 

 
    private Session currentSession() { 
 
     return sessionFactory.getCurrentSession(); 
 
    } 
 

 
    @SuppressWarnings("unchecked") 
 
    @Override 
 
    public List<User> list() { 
 
     Session session = this.sessionFactory.openSession(); 
 
     List<User> users = session.createQuery("from ts_user").list(); 
 
     session.close(); 
 
     return users; 
 
    } 
 
}

XML如下:

回答

0

您在此处使用的是表名而不是entityName。这里应该使用实体名称,即类的名称。

@Override 
public List<User> list() { 
    Session session = this.sessionFactory.openSession(); 
    List<User> users = session.createQuery("select u from User u").list(); 
    session.close(); 
    return users; 
}