hibernate 多个表映射到同一个类的查询

evo_vii 2006-10-23 01:51:10
在我们的系统中,由于数据量大,经常分表
比如,sgip_mt_log 这个表,就是按月分为很多的表,
如 sgip_mt_log_200610,sgip_mt_log_200609 等
映射的对象只是sgip_mt_log 这个表
查询其它月份的表
String sql = "select {sgip_mt_log.*} from sgip_mt_log_200610 {sgip_mt_log} order by {sgip_mt_log.MTID}";
query=session.createSQLQuery(sql).addEntity("sgip_mt_log",MTMsg.class);

这样查询是可以的没有问题

但是如果加上条件
String sql = "select {sgip_mt_log.*} from sgip_mt_log_200610 {sgip_mt_log} where{sgip_mt_log.MTID}=1";

就会报错误 ORA-00904: "MT1_0_": 无效的标识符

为什么order by {sgip_mt_log.MTID} 就没有问题 where{sgip_mt_log.MTID}=1 就会出现问题哪
应该怎么解决 请解答

方便的话可以加我的MSN : evo_china@hotmail.com
...全文
725 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
evo_vii 2006-10-24
  • 打赏
  • 举报
回复
esprit0318(遥远的。。。AZA~~AZA~~FIGHTING......) 这位大哥 你来晚了
esprit0318 2006-10-23
  • 打赏
  • 举报
回复
学习,接分!
hqqiang 2006-10-23
  • 打赏
  • 举报
回复
sf!
evo_vii 2006-10-23
  • 打赏
  • 举报
回复
搞定了
原因在于,hibernate解析出的sql语句中,会自动为表中的列加上别名,如id会变为id0_0_。
可以使用生成后的别名来进行order by排序,
但并不能使用别名来进行where条件处理,参与条件运算的必须是实际的列名,而不能是别名。
于2024年4月-2025年9月期间,研究团队在贵州习水国家级自然保护区制定39条样线,涵盖灌木林、常绿阔叶林、针叶林、常绿落叶阔叶混交林、针阔混交林等不同植被型,每条样线分春夏秋冬4个季节采集样品,用真菌采集软件记录经纬度、海拔、采集地点、时间、生境等信息,使用佳能相机(R6 mark Ⅱ)对大型真菌进行拍照,并采集标本,标本存放于贵州省生物研究所大型真菌标本馆(HGAMF)。 通过形态学初步鉴定,结合分子生物学最终鉴定,参考已]报道的中国毒蘑菇名录开展毒蘑菇的认定。 调查到保护区内有毒真菌7目25科64种,导致中毒的主要型有急性肾衰竭型、神经精神型和胃肠炎型。最终形成贵州习水国家级自然保护区大型有毒真菌图片数据集,它由以下2个部分组成。 (1)附件1包含78张原始照片(.JPG),照片名字包括了大型有毒真菌的拉丁名和中文名,若无中文名的直接用拉丁名。 (2)附件2是一个压缩文件,包含了2张工作,其中一张是大型有毒真菌39条样线的信息,另一张是大型有毒真菌的中毒型。 照片采用佳能相机R6 mark Ⅱ拍摄,物种鉴定通过多种文献核实,并经两位以上专家鉴定确认。该数据集可为研究地及周边的普通人识别有毒大型真菌提供参考,通过及时的图片对比,能有效避免误采误食大型有毒真菌,同时为因误食大型真菌可能引发的身体损伤进行了总结,能为患者及时治疗提供参考。

67,536

社区成员

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

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