Спящий режим не заканчивается - PullRequest
0 голосов
/ 17 декабря 2018

проблема в том, что после запуска hibernate при входе в систему я не могу полностью завершить программу, в Eclipse мне приходится вручную использовать параметр terminate после закрытия программы, и в качестве исполняемого файла jar программа остается открытой как процесс java дажекогда закрыто.

Этот метод используется классом входа в систему:

public class LoginService {

private User user = null;

// email = username

public User getUser(String email) throws Exception {
    List<User> userList = new ArrayList<>();

    Session session = ConnectionHelper.getSessionFactory().openSession();   // Creates session

    CriteriaBuilder builder = session.getCriteriaBuilder();                 // Create builder
    CriteriaQuery<User> query = builder.createQuery(User.class);            // Create query
    Root<User> userRoot = query.from(User.class);                           // SELECT FROM USER
    query.where(builder.equal(userRoot.get("email"), email));               // WHERE EMAIL = ????
    userList = session.createQuery(query).getResultList();                  // Runs the query, gets result


    if (userList.size()>0) {                                                // Checks for null value
        user = userList.get(0);                                             // Gets value if not null
    }


        return user;                                                        // Returns user object

}

}

И этот класс имеет информацию о соединении:

public class ConnectionHelper {

private static SessionFactory sessionFactory = null;
private static ServiceRegistry registry;

public static SessionFactory getSessionFactory() {
    if (sessionFactory == null) {
        createSessionFactory();
    }
    return sessionFactory;

}

private synchronized static void createSessionFactory() {
    Configuration config = new Configuration().configure("/res/hibernate.cfg.xml");
    config.addAnnotatedClass(User.class);
    registry = new StandardServiceRegistryBuilder().applySettings(
            config.getProperties()).build();
    sessionFactory = config.buildSessionFactory(registry);

}

public void stop() throws Exception {
    sessionFactory.close();
}

}

Я пытался использовать session.close в методе службы входа в систему, где пользователь / пароль проходит проверку подлинности, но это не сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...