在 SQL Server 2008 中使用休眠

Posted

技术标签:

【中文标题】在 SQL Server 2008 中使用休眠【英文标题】:Using Hibernate with SQL Server 2008 【发布时间】:2012-04-10 14:58:51 【问题描述】:

我在应用程序的数据访问层使用带有 Hibernate 3.0 的 SQL Server 2008。问题是我无法从数据库中读取。 这是我的休眠配置;

<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 在我运行时发生。 需要紧急回复。

【问题讨论】:

您在数据库中是否有 id 1 的条目?同时打印堆栈跟踪。 已解决。实际上,“用户”a 是 SQL Server 2008 中的保留字。无论如何,感谢@ManuPK。 【参考方案1】:

解决了。实际上,“用户”a 是 SQL Server 2008 中的保留字。无论如何,感谢@ManuPK。

【讨论】:

以上是关于在 SQL Server 2008 中使用休眠的主要内容,如果未能解决你的问题,请参考以下文章

休眠约束违反异常挂起sql server

当嵌入式键包含 SQL Server 上的标识列时,休眠插入失败

如何为 sql server 配置休眠配置文件

求助,Windows 2008如何配置睡眠(Sleep)、休眠(hibernate)、混合休眠(Hybird Sleep)、标准睡眠(Standby)

如何在休眠中记录失败的sql?

使用休眠防止 SQL 注入