Sql命令没有完成 - 挂起在console-hibernate中

时间:2017-04-07 15:13:34

标签: hibernate

这段代码有什么问题? SQL命令没有完成,使用show_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;
    }
}

1 个答案:

答案 0 :(得分:0)

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

DigitsAuthButton digitsButton;
AuthCallback authcallback;
 digitsButton = (DigitsAuthButton) view.findViewById(R.id.auth_button);
        digitsButton.setAuthTheme(R.style.CustomDigitsTheme);
        authcallback = new AuthCallback() {
            @Override
            public void success(DigitsSession session, String phoneNumber) {
                edtMobNumber.setText(phoneNumber);
            }

            @Override
            public void failure(DigitsException exception) {

                exception.printStackTrace();

            }
        };
        digitsButton.setCallback(authcallback);
//launching digits activity on click of edit text
edtMobNumber.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Digits.clearActiveSession();
        digitsButton.performClick();
    }
});