發表於 程式分享

hibernate 5 無法在mssql 2012使用select top ?以取得前幾筆資料之解法

使用
Query query = getSession().createQuery(" FROM WABlog c Order By id desc");
query.setMaxResults(iLastRecord);
query.setFirstResult(0);

執行後均會失敗,出現"org.hibernate.exception.SQLGrammarException: could not extract ResultSet."

終於找到的解法是在applicationContext.xml (我是用spring)

<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
改為
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2012Dialect</prop>

若不是使用spring,調整hibernate.cfg.xml的設定
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
改為
<property name="dialect">org.hibernate.dialect.SQLServer2012Dialect</property>

應該也能work…