0

注釈付きで休止状態を使用しようとしています。クラスに @Entity (これが Hibernate のエンティティではなく javax.persistance.Entity であることを確認しました) と @Table で注釈を付けました。

テーブルをクエリしようとすると

session.createQuery("from HibernateMatchedInvoiceItem").list()

しかし、これは次の例外で失敗しています

caused by: org.hibernate.hql.ast.QuerySyntaxException: HibernateMatchedInvoiceItem is not mapped [from HibernateMatchedInvoiceItem]

私のセッションファクトリーは次のように定義されています。

   <bean id="SessionFactory"
      class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
      parent="AbstractSessionFactory" depends-on="AppConfigHelper">
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
     </props>
    </property>
    <property name="dataSource" ref="dataSource" />

persistant.xml ファイルを定義しませんでした。この例外の背後にある理由は何ですか? hibernate が必要とするもの (データベース接続とクラス マッピング) はすべて構成と注釈によって指定されるため、persistance.xml ファイルを明示的に指定する必要があるのはなぜでしょうか?

4

1 に答える 1

2

アノテーションを使用している場合は、class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" を使用する必要があります。

例 :

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="annotatedClasses">
        <list>
            <value>package.classname</value>
        </list>
    </property>
于 2012-10-26T18:34:01.130 に答える