Hibernate: не удалось лениво инициализировать коллекцию ролей, ни один сеанс или сеанс не был закрыт - PullRequest
21 голосов
/ 19 августа 2010

Мой код:

    @Test
public void testAddRoleAndAddUser() {

    Role r = roleDao.findByProperty("name", "admin");
    if(r == null) {
        r = new Role();
        r.setName("admin");
        r.setDescription("Just administrator.");
        roleDao.save(r);
    }

    User u = dao.get(1l);
    Set<Role> roles = u.getRoleSet();
    logger.debug("Roles is null: " + (roles == null));
    roles.add(r);
    dao.save(u);
}

13: 39: 41,041 ОШИБКА: org.hibernate.LazyInitializationException не удалось лениво инициализировать коллекцию ролей: xxx.entity.core.User.roleSet, нетсеанс или сеанс закрыты org.hibernate.LazyInitializationException: не удалось лениво инициализировать коллекцию ролей: xxx.entity.core.User.roleSet, ни один сеанс или сеанс не был закрыт в org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException (AbstractPersistentCollection.jpg: 380) at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected (AbstractPersistentCollection.java:372) в org.hibernate.collection.AbstractPersistentCollection.initialize (AbstractPersistentCollection.jcolers PersolS (Java: 212) на sg.com.junglemedia.test.dao.impl.hibernate.UserDaoTest.testAddRoleAndAddUser (UserDaoTest.java:40) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.reflect.Methodj.jj.jj.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:44) в org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:15) в org.junit.runners.model.Frameworklykelohololo::.41) в org.junit.internal.runners.statements.InvokeMethod.evaluate (InvokeMethod.java:20) в org.junit.internal.runners.statements.RunBefores.evaluate (RunBefores.java:28) в org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:76) в org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:50) в org.junit.junner.runners.ParentRunner $ 1.schedule (ParentRunner.java:52) в org.junit.runners.ParentRunner.runChildren (ParentRunner.java:191) в org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:42) в org.junit.runners.ParentRunner $ 2.evaluate (ParentRunner.java:184) в org.junit.runners.ParentRunner.run (ParentRunner.java: 236) в org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run (JUnit4TestReference.java:46) в org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:467) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTest) orgeclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:390) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:197) * 10051007 * Кто-нибудь поможет?

Ответы [ 11 ]

0 голосов
/ 08 сентября 2010

Отметьте этот блог на испанском языке, который вы можете перевести. Также есть ссылки на другую документацию.

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