一个关于Hibernate问号传值问题,请教高手。

Sessionsession=getSession();Queryquery=session.createQuery("from?asawherea.id=?");que... Session session = getSession();
Query query = session.createQuery("from ? as a where a.id=?");
query.setParameter(0, "User");
query.setParameter(1, Admin_id);

上面代码出错:unexpected token: ? near line 1, column 6 [from ? as a where a.id=?]

如果把第一个问号换成User,小心修改下就可以正常运行了,我想把那个User对象换成个参数,以便可以一个方法访问多个数据表。高手指点迷津~~ 谢谢哟
展开
 我来答
贯真
2010-10-27 · TA获得超过2698个赞
知道大有可为答主
回答量:1022
采纳率:0%
帮助的人:1078万
展开全部
把那个User对象换成个参数,以便可以一个方法访问多个数据表。
弄个String tabName 作为方法参数。
然后 Query query = session.createQuery("from "+ tabName+" as a where a.id=?");

。。。才发现好多人回答了,我的采纳率啊,。,。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乁Freedom
2010-10-27 · TA获得超过2128个赞
知道小有建树答主
回答量:1580
采纳率:0%
帮助的人:1414万
展开全部
大哥,我知道你想写个通用的工具方法
但是你from后面是个参数
而你setParameter那里又写了个"User",这样还有什么用?
那你干脆从外面传给参数进来
String hql = "from" + entity + " where id=?";
session.createQuery(hql);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lqq600883
2010-10-27 · TA获得超过585个赞
知道小有建树答主
回答量:243
采纳率:40%
帮助的人:108万
展开全部
我印象中 次处?应该只能用作替代where语句后的东西,from 后面的 表 你如果想用参数表示,可以在这段语句的方法上加入参数,然后把参数放在此处不也可以达到你要的效果吗。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Arjen___Robben
2010-10-27 · 超过17用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:29.4万
展开全部
通过查询上面的判断
String tableName="";
if(XXX){
tableName="User"
}else if(XXX){
tableName="Admin"
}

String queryString="from "+tableName+ "a where a.id=?"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式