Announcement Announcement Module
Collapse
No announcement yet.
No Hibernate Session bound to thread Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • No Hibernate Session bound to thread

    Hibernate version:3.0.4
    Spring : 1.2

    Mapping documents:

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

    <hibernate-mapping
    >
    <class
    name="com.stufftolet.model.Posting.Category"
    table="CATEGORY"
    lazy="true"
    >

    <id
    name="id"
    column="CATEGORY_ID"
    type="java.lang.Long"
    unsaved-value="null"
    >
    <generator class="native">
    <!--
    To add non XDoclet generator parameters, create a file named
    hibernate-generator-params-Category.xml
    containing the additional parameters and place it in your merge dir.
    -->
    </generator>
    </id>

    <version
    name="version"
    column="version"
    type="java.lang.Integer"
    />

    <property
    name="name"
    type="java.lang.String"
    update="true"
    insert="true"
    >
    <column
    name="NAME"
    length="50"
    unique-key="UNIQUE_NAME_AT_LEVEL"
    not-null="true"
    />
    </property>

    <many-to-one
    name="parentCategory"
    class="com.stufftolet.model.Posting.Category"
    cascade="none"
    outer-join="false"
    update="true"
    insert="true"
    foreign-key="FK1_PARENT_CATEGORY_ID"
    >
    <column
    name="PARENT_CATEGORY_ID"
    unique-key="UNIQUE_NAME_AT_LEVEL"
    not-null="false"
    />
    </many-to-one>

    <set
    name="childCategories"
    lazy="true"
    inverse="true"
    cascade="all-delete-orphan"
    sort="unsorted"
    batch-size="10"
    >

    <key
    >
    <column
    name="PARENT_CATEGORY_ID"
    />
    </key>

    <one-to-many
    class="com.stufftolet.model.Posting.Category"
    />

    </set>

    <set
    name="categorizedItems"
    lazy="false"
    inverse="true"
    cascade="all-delete-orphan"
    sort="unsorted"
    outer-join="false"
    >

    <key
    >
    <column
    name="CATEGORY_ID"
    length="16"
    not-null="true"
    />
    </key>

    <one-to-many
    class="com.stufftolet.model.Posting.CategorizedIte m"
    />

    </set>

    <property
    name="created"
    type="java.util.Date"
    update="false"
    insert="true"
    column="CREATED"
    not-null="true"
    />

    <!--
    To add non XDoclet property mappings, create a file named
    hibernate-properties-Category.xml
    containing the additional properties and place it in your merge dir.
    -->

    </class>

    </hibernate-mapping>


    Code between sessionFactory.openSession() and session.close():
    public Collection findAllCategory(boolean onlyRootCategories){

    Collection categories;

    if (onlyRootCategories) {
    Criteria crit = getHibernateTemplate().getSessionFactory().getCurr entSession().createCriteria(Category.class);
    categories = crit.add(Expression.isNull("parentCategory")).list ();
    } else
    categories = getHibernateTemplate().getSessionFactory().getCurr entSession().createCriteria(Category.class).list() ;

    return categories;
    }


    Full stack trace of any exception that occurs:

    [junit] Testcase: testFindCategory(com.stufftolet.dao.CatalogDAOTest ):
    Caused an ERROR
    [junit] No Hibernate Session bound to thread, and configuration does not all
    ow creation of non-transactional one here
    [junit] org.hibernate.HibernateException: No Hibernate Session bound to thre
    ad, and configuration does not allow creation of non-transactional one here
    [junit] at org.springframework.orm.hibernate3.LocalSessionFac toryBean$Tr
    ansactionAwareInvocationHandler.invoke(LocalSessio nFactoryBean.java:960)
    [junit] at $Proxy0.getCurrentSession(Unknown Source)
    [junit] at com.stufftolet.dao.hibernate.CatalogDAOHibernate.f indAllCateg
    ory(CatalogDAOHibernate.java:66)
    [junit] at com.stufftolet.dao.CatalogDAOTest.testFindCategory (CatalogDAO
    Test.java:51)
    [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAcces
    sorImpl.java:39)
    [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMet
    hodAccessorImpl.java:25)

    Name and version of the database you are using:MySql 4.1.12

    Hi guys,

    When I was testing a composite pattern retrieve function, which is

    categories = getHibernateTemplate().getSessionFactory().getCurr entSession().createCriteria(Category.class).list() ;

    i got the above exception. Anyone pls kindly assist, Thank you !

  • #2
    Do you have a transaction context? How are you delimiting transactions?

    Comment

    Working...
    X