使用hibernate对oracle数据库分页出现错误

yaterman2 2010-07-16 11:03:34
代码
public List findRec(final String hql, final int firstResult,
final int maxResults) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,
SQLException {

Query query = s.createQuery(hql);
query.setFirstResult(firstResult);
query.setMaxResults(maxResults);
List list = query.list();
return list;
}
});
}

public List getRolesCategorys(final int start, final int limit) {
return findRec("from HtSysRolesCategory", start, limit);


输出的hql:
Hibernate: select htsysroles0_.ROLE_CATE_ID as ROLE1_1_, htsysroles0_.ROLE_CATE_NAME as ROLE2_1_ from HT_SYS.HT_SYS_ROLES_CATEGORY htsysroles0_ limit ?
(怎么多出了limit? ,我用的是oracle)

错误:

Struts Problem Report

Struts has detected an unhandled exception:
Messages:

1. ORA-00933: SQL ???????
2. could not execute query
3. could not execute query; SQL [select htsysroles0_.ROLE_CATE_ID as ROLE1_1_, htsysroles0_.ROLE_CATE_NAME as ROLE2_1_ from HT_SYS.HT_SYS_ROLES_CATEGORY htsysroles0_]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query

File: oracle bc/driver/DatabaseError.java
Line number: 112

请高手帮忙啊。
...全文
188 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
smilestruggle 2012-10-29
  • 打赏
  • 举报
回复
我也有这样的问题怎么搞啊 都好久了 还是没有解决哦
chenxijun_ 2012-08-22
  • 打赏
  • 举报
回复
我的方言是对的
chenxijun_ 2012-08-22
  • 打赏
  • 举报
回复
怎么解决的啊 我有同样问题
yaterman2 2010-07-16
  • 打赏
  • 举报
回复
结贴了,给分
yaterman2 2010-07-16
  • 打赏
  • 举报
回复
我晕了
niu90 2010-07-16
  • 打赏
  • 举报
回复
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>改为org.hibernate.dialect.Oracle9Dialect
bean 2010-07-16
  • 打赏
  • 举报
回复
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>,这是MYSQL的方言吧,改为ORCLE的
xianaofei 2010-07-16
  • 打赏
  • 举报
回复
底层架包驱动或者配置文件错误了
yaterman2 2010-07-16
  • 打赏
  • 举报
回复
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- apache.dbcp连接池的配置 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url" value="jdbc:oracle:thin:@192.168.1.150:1521:rpms">
</property>
<property name="username" value="ht_sys"></property>
<property name="password" value="ht_sys"></property>
<!-- 最大活动连接数 -->
<property name="maxActive" value="100"></property>
<!-- 最大可空闲连接数 -->
<property name="maxIdle" value="30"></property>
<!-- 最大可等待连接数 -->
<property name="maxWait" value="500"></property>
<!-- 默认的提交方式(如果不需要事务可以设置成true,在实际应用中一般设置为false,默认为false) -->
<property name="defaultAutoCommit" value="true"></property>
</bean>


<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<!-- hibernate方言等相关配置 -->
<property name="hibernateProperties">
<props>
<prop key="connection.useUnicode">true</prop>
<prop key="connection.characterEncoding">utf-8</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!-- hbm.xml的映射文件 -->
<property name="mappingResources">
<list>
<value>com/htinfo/htsys/model/HtSysUsers.hbm.xml</value>
<value>com/htinfo/htsys/model/HtSysRolesCategory.hbm.xml</value>
</list>
</property>
</bean>


不应该啊,我将query.setMaxResults(maxResults);行代码去掉就没有错误了啊。
牛叔 2010-07-16
  • 打赏
  • 举报
回复
配置文件错了
自己检查一下
gulang76 2010-07-16
  • 打赏
  • 举报
回复
hibernate配置里面的数据库类型配错了。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧