首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

sql向mysql数据库迁移,分页出现有关问题,报的应该是 关键字异常,但是死活发现不了

2012-12-16 
sql向mysql数据库迁移,分页出现问题,报的应该是 关键字错误,但是死活发现不了错误: You have an error in

sql向mysql数据库迁移,分页出现问题,报的应该是 关键字错误,但是死活发现不了
错误: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '15 dpt0_.Id as Id5_, dpt0_.text as text5_, dpt0_.url as url5_, dpt0_.parentId as' at line 1

数据库 mysql

hibernate 方法

public List findPageByQuery(final String queryString,final Object[] parameters, final PageInfo pageInfo) {
return getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)throws HibernateException, SQLException{
Query query = session.createQuery("from Dpt");
query.setMaxResults(15);
query.setFirstResult(0);
return query.list();
}
});
}
[最优解释]
hibernate配置文件里
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>这句有没有
[其他解释]
LZ,你发表的另外一个帖子有回复,你去看看,是否对你有帮助,也是这个问题的!
[其他解释]
支持一下楼主!
[其他解释]
LZ,建议你看看自己的配置文件,对象Dpt和你的hibernate配置文件的列,属性是否一致!
[其他解释]
<hibernate-mapping>
    <class name="org.heb.lib.sms.model.Dpt" table="dpt">
        <id name="id" type="java.lang.Integer">
            <column name="Id" />
            <generator class="native" />
        </id>
        <property name="text" type="java.lang.String">
            <column name="text" length="500" />
        </property>
        <property name="url" type="java.lang.String">
            <column name="url" length="500" />
        </property>
        <property name="parentId" type="java.lang.Integer">
            <column name="parentId" />
        </property>
        <property name="cls" type="java.lang.String">
            <column name="cls" length="50" />
        </property>
        <property name="leaf" type="java.lang.Integer">
            <column name="leaf" />
        </property>
        <property name="code" type="java.lang.String">


            <column name="code" length="50" />
        </property>
    </class>
</hibernate-mapping>
[其他解释]
package org.heb.lib.sms.model;

import java.util.HashSet;
import java.util.Set;

/**
 * Dpt entity. @author MyEclipse Persistence Tools
 */

public class Dpt implements java.io.Serializable {

// Fields

private Integer id;
private String text;
private String url;
private Integer parentId;
private String cls;
private Integer leaf;
private String code;

// Constructors

/** default constructor */
public Dpt() {
}

/** full constructor */
public Dpt(String text, String url, Integer parentId, String cls,
Integer leaf, String code) {
this.text = text;
this.url = url;
this.parentId = parentId;
this.cls = cls;
this.leaf = leaf;
this.code = code;
}

// Property accessors

public Integer getId() {
return this.id;
}

public void setId(Integer id) {
this.id = id;
}

public String getText() {
return this.text;
}

public void setText(String text) {
this.text = text;
}

public String getUrl() {
return this.url;
}

public void setUrl(String url) {
this.url = url;
}

public Integer getParentId() {
return this.parentId;
}

public void setParentId(Integer parentId) {
this.parentId = parentId;
}

public String getCls() {
return this.cls;
}

public void setCls(String cls) {
this.cls = cls;
}

public Integer getLeaf() {
return this.leaf;
}

public void setLeaf(Integer leaf) {
this.leaf = leaf;
}

public String getCode() {
return this.code;
}

public void setCode(String code) {
this.code = code;
}

}
[其他解释]
配置文件,没有错误吧

而且就是 一个 查询,from dpt 为什么会报错呢
而且在sql 底下就没事,为什么
[其他解释]
恩,配置没错。


public List<InvoiceAll> getList(final String hql, final String start, final String limit) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query q = session.createQuery(hql);
q.setFirstResult(Integer.parseInt(start));
q.setMaxResults(Integer.parseInt(limit));
list = q.list();
return list;
}
});


return list;
}



LZ,我是这么使用的,以前!是用 execute,不是你的executeFind!!!你修改试试!
[其他解释]
然后你这只是测试方法吗?
正常来说你的dao传入的参数都是要用的,LZ,你传入的几个参数,没看到使用,
如果不行,给后面对象设置个别名!
from   Dpt p !!!
[其他解释]
executeFind 是返回的list 集合 和 execute一样吧,不过修改实验了下,结果一样,还是报相同的错误,难道mysql 里面有 dpt 这个关键字?
[其他解释]
那几个参数,本来是做分页信息的,为了排查原因,那个参数注释掉了!不影响
[其他解释]
from dpt p 还是一样的 报错结果
[其他解释]
15 dpt0_.Id as Id5_, dpt0_.text as text5_, dpt0_.url as url5_, dpt0_.parentId as

看到提示信息,为什么会转化成15 ,感觉像top 15 ,有点像 sql的语句吧,他转化成mysql 15这个不应该 放前面吧,不知道怎么看他自动生成的语句!
[其他解释]
郁闷,spring的方言忘记改变了,郁闷,郁闷,弄了好几天,一直以为语句的问题!!!
[其他解释]
因为是数据库迁移,配置文件忘记修改了,就该用户名密码了!! 郁闷
[其他解释]
结贴,给分,郁闷,还是粗心大意啊,琢磨了2天,一直以为是有关键字错误,悲剧!!楼上那哥们,那个贴子,我也结了,分全给你!!
[其他解释]
hibernate配置文件里
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>这句有没有

LZ,看来估计就只剩这个原因了,你看看你修改了没!!

或者
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>

我估计你的还是<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>

热点排行