Java / Hibernate Beginner Вопрос понимания кода ниже - PullRequest
0 голосов
/ 10 сентября 2018
package com.util;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class HibernateUtil {
    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception to track it
            System.err.println("SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public static void shutdown() {
        // Optional but can be used to Close caches and connection pools
        getSessionFactory().close();
    }

}

Я пытаюсь понять приведенный выше код. Я новичок в Java и с трудом разбираюсь в нижеследующей строке. Означает ли это, что объект Configuration имеет метод configure, а метод configure имеет метод buildSessionFactory?

return new Configuration().configure().buildSessionFactory();

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018
  1. Объект конфигурации имеет метод configure, который возвращает всю конфигурацию, указанную в hibernate.cfg.xml, в качестве объекта Configuration. эта информация используется для подключения к базе данных.
  2. Затем из объекта конфигурации мы берем объект SessionFactory, который будет использоваться для создания объектов сеанса для подключения к базе данных.

Конфигурация конфигурации = ноль; SessionFactory factory = null;

конфигурация = новый . Конфигурация () настройки ( "COM / приложение / cfgs / hibernate.cfg.xml"); Завод = cfg.buildSessionFactory ();

0 голосов
/ 10 сентября 2018

Методы не имеют методов, методы возвращают объекты, и у этих объектов есть методы.

Здесь в Configuration есть несколько методов, которые возвращают Confuguration (поэтому метод возвращает объект, для которого он вызван). Это позволяет создавать цепочки методов, так что configure вызывается для этого объекта, а затем buildSessionFactory вызывается для того же объекта.

Более распространенным примером цепочки методов является класс java.lang.StringBuilder. Вы можете создать строку с последовательными вызовами добавления для одного и того же объекта компоновщика:

String example = new StringBuilder(“hello”)
    .append(“ “)
    .append(“world”)
    .toString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...