2012-03-27 27 views
4

我在我的應用程序的數據訪問層使用SQL Server 2008和Hibernate 3.0。問題是我無法從數據庫中讀取數據。 這是我的Hibernate配置;在SQL Server 2008中使用Hibernate

<property name="connection.driver_class"> com.microsoft.sqlserver.jdbc.SQLServerDriver</property> 
<property name="connection.url">jdbc:sqlserver://localhost;databaseName=test;integratedSecurity=true;</property> 
<property name="connection.username">not required</property> 
<property name="connection.password"></property> 
<property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property  
<property name="hibernate.hbm2ddl.auto">update</property>  
<mapping resource="user.hbm.xml"/> 

這裏是user.hbm.xml

<class name="ammar.User" table="user" schema="dbo" catalog="test"> 
    <id name="userId" type="int" column="userId" > 
     <generator class="assigned"/> 
    </id> 

    <property name="userName"> 
     <column name="userName" /> 
    </property> 
</class> 

這裏是我使用從數據庫中獲得數據的代碼。

SessionFactory sF = new Configuration().configure().buildSessionFactory(); 
    Session session = sF.openSession(); 

    User user = (User) session.get(User.class, 1); 

    if(user!=null) 
     System.out.println(user.getUserName()); 
    else 
     System.out.println("Not Found"); 

SQLGrammarException以及SQLServerException當我運行這個時發生。 需要緊急回覆。

+0

你有一個在數據庫中的ID爲1的條目?同時打印堆棧跟蹤。 – ManuPK 2012-03-27 13:46:40

+0

解決。 實際上'用戶'a是SQL Server 2008中的保留字。 無論如何,感謝@ManuPK。 – Ammar 2012-03-27 17:42:01

回答

0

已解決。其實'用戶'是SQL Server 2008中的保留字。無論如何,感謝@ ManuPK。