Исключение гибернации: максимальный размер внутреннего пула соединений - PullRequest
0 голосов
/ 18 октября 2018

Я сталкиваюсь с вышеуказанной проблемой, когда добавляю аннотацию @GeneratedValue в поле Id.Ниже приведен фрагмент кода, который я использовал для сохранения сущности с помощью hibernate.

public class HibernateTest {
public static void main(String[] args) {
    Employee emp1 = new Employee();
    emp1.setName("User1");

    try (SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession()){
    session.beginTransaction();
    session.save(emp1);
    session.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

}

Ниже приведен мой класс сущностей

@Entity
@Table (name = "Employee_Details")
public class Employee {
    @Id  @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    private String name;
    public int getId() { return id; }
    public void setId(int id) { this.id = id; } 
    public String getName() {
        return name;
    }
    public void setName(String name) { this.name = name; }
}

А в hibernate.cfg.xml размер пула соединений установлен в 1

<property name="connection.pool_size">1</property>

Я закрываю сеанс, а также экземпляр sessionFactory каждый раз.Все еще сталкивается с приведенным ниже исключением в журналах

org.hibernate.HibernateException: The internal connection pool has reached its maximum size and no connection is currently available!
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.poll(DriverManagerConnectionProviderImpl.java:322)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:189)
at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:35)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:48)
at org.hibernate.id.enhanced.TableStructure$1.getNextValue(TableStructure.java:125)
at org.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:40)

Если я удаляю аннотацию GeneratedValue из поля Id, это работает нормально.Может кто-нибудь сказать мне, почему это не удается?И как мне это решить?

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Я думаю, что для определения идентификатора используется соединение.Возможно, установка числа соединений вместо 2 решает проблему.

0 голосов
/ 24 октября 2018

У меня возникла эта проблема, и я решил ее, заменив:

@GeneratedValue(strategy = GenerationType.AUTO) 

на:

@GeneratedValue(strategy = GenerationType.IDENTITY)

Надеюсь, что это работает и у вас!

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