org.hibernate.exception.DataException: could not execute query

Stringlimit="selectcpro.productIdfromCategoryProductcprowherecpro.catId=?";StringhqlP... String limit = "select cpro.productId from CategoryProduct cpro where cpro.catId=? ";
String hqlPro = "select bo from Book bo where bo.id=(select id from Product)";
List<Integer> list = getSession().createQuery(limit).setParameter(0, Integer.parseInt(cid))/*.setParameter(1, page).setParameter(2, size)*/.list();

System.out.println(getSession().createQuery(hqlPro).list());
List<Product> listPro = null ;
return listPro;

那里出现问题了?
CREATE TABLE product (
id int(12) NOT NULL auto_increment,
product_name varchar(100) NOT NULL,
description varchar(100) default NULL,
add_time bigint(20) default NULL,
fixed_price double NOT NULL,
dang_price double NOT NULL,
keywords varchar(200) default NULL,
has_deleted int(1) NOT NULL default '0',
product_pic varchar(200) default NULL,
PRIMARY KEY (id)
)
CREATE TABLE book (
id int(12) NOT NULL,
author varchar(200) NOT NULL,
publishing varchar(200) NOT NULL,
publish_time bigint(20) NOT NULL,
word_number varchar(15) default NULL,
which_edtion varchar(15) default NULL,
total_page varchar(15) default NULL,
print_time int(20) default NULL,
print_number varchar(15) default NULL,
isbn varchar(25) default NULL,
author_summary text NOT NULL,
catalogue text NOT NULL,
PRIMARY KEY (id)
)
CREATE TABLE category (
id int(12) NOT NULL auto_increment,
turn int(10) NOT NULL,
en_name varchar(200) NOT NULL,
name varchar(200) NOT NULL,
description varchar(200),
parent_id int(10),
PRIMARY KEY (id)
)
CREATE TABLE category_product (
id int(12) NOT NULL auto_increment,
product_id int(10) NOT NULL,
cat_id int(10) NOT NULL,
PRIMARY KEY (id)
)
展开
 我来答
平配4543
2014-08-20 · 超过55用户采纳过TA的回答
知道答主
回答量:105
采纳率:100%
帮助的人:102万
展开全部
1,直接看,应该是你拼时间的时候出错了,你不要直接把时间拼到HQL里面,使用?占位符,使用query.setParameter方法来设置参数值试试;
2,HQL是不能直接在数据库里面直接运行的。
请采纳答案,支持我一下。
追问
拼时间?没有啊 我就是用了getSession().createQuery(limit).setParameter(0, Integer.parseInt(cid))
puziguo
推荐于2016-05-26 · TA获得超过1928个赞
知道小有建树答主
回答量:884
采纳率:86%
帮助的人:817万
展开全部
那是自动回答的

1: HQL 没有select ******** 的,直接 from ObjectName where ************

2: select bo from Book bo where bo.id=(select id from Product)

应该写成 from Book bo where bo.id=(select id from Product)

另外select id from Product 这个语句返回的应该是集合,所以前面的bo.id = 就有问题,应该用in

如: from Book bo where bo.id in (select id from Product)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式