2017-04-07 61 views
2

此代碼有什麼問題? SQL命令沒有完成,使用show_sql,我能夠看到發出的第一個sql命令,然後它將無限期地留在那裏 - 程序不會繼續。Sql命令無法完成 - 在控制檯中掛起 - 休眠

public class PersonDao { 
private Configuration configuration; 
private SessionFactory sessionFactory; 
private Session session; 

public PersonDao() { 
    configuration = new Configuration().configure(); 
    sessionFactory = configuration.buildSessionFactory(); 

} 

public Person addPerson(Person p) 
{ 
    Transaction transaction = null; 
    try 
    { 
     session = sessionFactory.openSession(); 
     transaction = session.beginTransaction(); 
     System.out.println("Before person add"); 
     session.save(p); 
     System.out.println("Person added"); 
     transaction.commit(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     session.flush(); 
     session.close(); 
    } 
    return p; 
} 

@SuppressWarnings("finally") 
public boolean deletePerson(long personId) 
{ 
    boolean issuccessful = false; 
    Transaction tx = null; 
    try { 
     session = sessionFactory.openSession(); 
     tx = session.beginTransaction(); 
     Object persistentInstance = session.load(Person.class, personId); 
     if (persistentInstance != null) { 
      ((Person)persistentInstance).getResponses().clear(); 
      ((Person)persistentInstance).getOwnedEvents().clear(); 
      session.delete(persistentInstance); 
     } 
     session.getTransaction().commit(); 
    } catch (Exception e) { 
     tx.rollback(); 
     issuccessful = false; 
     e.printStackTrace(); 
    } finally { 
     session.flush(); 
     session.close(); 
     return issuccessful; 
    } 
} 
+0

嗨,這事因爲早在sqlplus,我正發出一些DML命令後,我並沒有發出「提交」。因此,該應用程序在eclipse/hibernate中發出SQL語句時就掛起了。 – jrd

回答

0

您需要配置hibernate.cfg.xml文件

configuration=new Configuration(); 
    configuration.configure("hibernate.cfg.xml");