2014-09-12 169 views
0

休眠拋出一個奇怪的錯誤休眠:類未映射

休眠:選擇user0_.userID如userID0_,user0_.password從用戶user0_ password0_其中user0_.userID = '管理員' 和 user0_。密碼= '管理員' org.hibernate.hql.ast.QuerySyntaxException: 動作沒有被映射[從行動其中id = 'MADEX240214']在 org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java: 181) at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)

我的代碼有什麼問題嗎?

public String insertActions(ArrayList<Action> data , String[] check) 
    { 
    Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
    session.beginTransaction(); 
    Query query = null; 
    try 
    { 
     for (int i = 0; i < data.size(); i++) 
     { 
      if(check[i].compareTo("Update")==0) 
      { 
       query = session.createQuery("update Action set Last = :Last ," 
         + " Adjusted_Last =:Adjusted_Last where idAction = :idAction"); 

       query.setDouble("Last", data.get(i).getLast()); 
       query.setDouble("Adjusted_Last", data.get(i).getAdjustLast()); 
       query.setParameter("idAction", data.get(i).getIdAction()); 
       int result = query.executeUpdate(); 
      } 
      else 
      { 
       session.save(data.get(i)); 
      } 
     } 
    } 
    catch (HibernateException e) 
    { 
     e.printStackTrace(); 
     session.getTransaction().rollback(); 
     return "ERROR"; 
    } 
     session.getTransaction().commit(); 
     return "SUCCESS"; 
    } 
+2

發表您的hibernate.cfg.xml – user3487063 2014-09-12 13:44:56

回答

0

什麼是完整的堆棧跟蹤?它似乎不是來自該部分的代碼。錯誤是從'行動'中選擇,而不是更新。

我注意到您的更新聲明中,您將該表引用爲「Action」。 HQL查詢區分大小寫。檢查你的映射。 '動作'!= '行動'

1

由Hibernate 5.1開始,我們必須寫的HibernateUtil這樣的方式

公共類的HibernateUtil {

private static final SessionFactory SESSION_FACTORY; 

static{ 
    try { 
     StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build(); 
     SESSION_FACTORY = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory(); 
    } catch (Exception e) { 
     throw new ExceptionInInitializerError(e); 
    } 
} 
public static Session openSession() { 
    return SESSION_FACTORY.openSession(); 
} 

}