0

アプリケーションでホストされているSQLServer2008に接続している「無効なオブジェクト名」を取得し続けます。文字列を使用してアプリからDBをクエリできます。ただし、Hibernateを使用すると、このエラーが発生します

//Calling Class
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
session.save(survey);
tx.commit(); <!--Blows up-->
session.close();


<hibernate-configuration>
<session-factory name="Persist">
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.password">xxxx</property>
<property name="hibernate.connection.url">jdbc:sqlserver://xxxx</property>
<property name="hibernate.connection.username">xxxx</property>
<property name="hibernate.default_catalog">xxxx</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
<mapping class="com.springmvc.dao.Survey" resource="com/springmvc/dao/Survey.hbm.xml"/>
</session-factory>
</hibernate-configuration>

//Table Mapping
<hibernate-mapping>
<class name="com.springmvc.dao.Survey" table="Survey">
    <id name="SurveyId" type="int">
        <column name="SURVEYID" />
        <generator class="assigned" />
    </id>
    <property name="SurveyName" type="java.lang.String">
        <column name="SURVEYNAME" />
    </property>
    <property name="CreateDate" type="java.sql.Date">
        <column name="CREATEDATE" />
    </property>
    <property name="IsActive" type="boolean">
        <column name="ISACTIVE" />
    </property>
</class>
</hibernate-mapping>

//The Error
org.hibernate.exception.SQLGrammarException: could not insert: [com.springmvc.dao.Survey]
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'Recruiter.Survey'.

何が起こっているのか、そしてそれを修正する方法を誰かに教えてもらえますか?それはHibernateの問題でなければなりません。スキームを追加しようとすると、Recruiter.dbo.Surveyが許可されていないというエラーが表示されます。調べるべき設定ファイルはもうありません、そしてグーグルは私に何か役に立つものを提供してくれました。ありがとう

4

1 に答える 1

1

主キーSurveryIdは、ジェネレータークラスを「割り当て済み」として持っています。休止状態のセッションで保存を呼び出す前に、キーを割り当てる必要があります。あなたはそれをしていますか?生成したくない場合は、自動生成します。

于 2012-04-23T20:51:16.250 に答える