Hibernate中hql对属性class的查询条件。 100

假设A类只有id属性,B类和C类是A类的子类,带有其他属性。三个类都是映射类,映射不同的表。在映射类TabX类中,有一个A类的属性a,对应B类或C类对应数据表的记录。这种... 假设A类只有id属性,B类和C类是A类的子类,带有其他属性。三个类都是映射类,映射不同的表。
在映射类TabX类中,有一个A类的属性a,对应B类或C类对应数据表的记录。
这种情况下,可以新增TabX类的数据,属性a的赋值可以是B类或C类的变量。
使用带有属性a的类型条件的hql对X类做查询,hql是这样的:
from TabX x where x.a.class = 'B' 或 from TabX x where x.a.class = 'C'
但都报异常:
Caused by: java.sql.SQLException: Unknown column 'a1_1_.id' in 'where clause'
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3004)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1128)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1222)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:56)

请问这种应该怎么解决呢?
是这样查询的:
Query query = session.createQuery(hql);
List<Tabx> list = query.list();
展开
 我来答
骑驴赶猪hot
2016-07-30 · TA获得超过804个赞
知道小有建树答主
回答量:1060
采纳率:0%
帮助的人:751万
展开全部
我可以用HQL查询或删除来操作这个新数组中的记录吗?----不能,hql语句只要操作在配置在Hiberate中的对象.你都已经把记录取出来放在数组中了,,想删除,直接从数组中删除不可以么????你是不是这个意思呢,,从数组中删除记录,还想同步的从数据库里也删除相应的记录呢?????希望有所提示,有空到51cto,365testing进一步交流!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
benben239
2016-07-29 · TA获得超过864个赞
知道小有建树答主
回答量:612
采纳率:100%
帮助的人:488万
展开全部
异常说你列名写错了
追问

列名没有写错,hql写成from TabX x where x.a = null,查询就不会报异常。

这种对属性class的查询方式,是从书《Hibernate3.0完整中文版教程.pdf》中看到的,下载自:

http://download.csdn.net/download/u0124544

29/9144793。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式