无效的对象名称hiberate 3.6
问题描述:
我在应用程序中不断收到一个连接到托管SQL Server 2008的'无效对象名'。我可以使用字符串从应用程序查询数据库。然而每当我使用Hibernate我得到这个错误无效的对象名称hiberate 3.6
//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是不允许的。没有更多的配置文件可以查看,并且Google为我提供了任何有用的东西。谢谢
答
您的主键SurveryId具有生成器类为“分配”,您需要在调用保存在休眠会话之前分配键。你在做那个吗?如果你不想生成然后让它自动生成。