高分求Hibernate联合查询解决方法,分不够开新贴加!!!

问题描述

我有两个表A和B,A和B中都有一个CardNum非主键字段,我想在查询A表时通过CardNum把B表中对应的记录读出来(CardNum在B表中是唯一的),但有可能A表中的CardNum在B表中不存在,所以没有外键约束,用SQL来实现就是SELECTa.*,b.*wherea.CardNum=b.CardNum.不知道使用Nhibernate如何关联这两个表,我期望的效果是可以A.B这样就能访问到A.cardnum对应的B记录。

解决方案

解决方案二:
路过,顺带顶顶,。
解决方案三:
A和B之间通过CardNum关联,他们是多对多的关系吗?
解决方案四:
多对一关系,cardnum在b表中是唯一的,但有可能a表中的 cardnum是b表中没有的非法值。
解决方案五:
selecta.*,b.*fromaleftjoinbona.CardNum=b.CardNum这样sql才对吧,直接调用sql不就行了
解决方案六:
fromAa,Bbwherea.CardNum=b.CardNum;
解决方案七:
该回复于2010-11-04 13:34:20被版主删除
解决方案八:
接5楼,返回结果是个List<Object[]>列表里的节点Object[0]就是你的A,Object[1]就是你的B,强制转化就oK了
解决方案九:
一个onetomany嘛。。在B表里面放一个List<A>,A里面放一个B的对象,然后在配置文件里面配置他们的关系就可以了。
解决方案十:
SQL语句是对的,你直接把这个语句写成Stringhql="SELECTa.*,b.*wherea.CardNum=b.CardNum.";List<Object[]>list=this.getSession.createQuery(hql).list();这样你查询出来的东西就存为了list。节点Object[0]就是你的A表的东西,Object[1]就是你的B表的东西,转换成你映射的类就可以了。
解决方案十一:
9楼的hql写错了
解决方案十二:
引用9楼zhu6100441的回复:

SQL语句是对的,你直接把这个语句写成Stringhql="SELECTa.*,b.*wherea.CardNum=b.CardNum.";List<Object[]>list=this.getSession.createQuery(hql).list();这样你查询出来的东西就存为了list。节点Object[0]就是你的A表的东西,Object[1]就是你的B表的……

。。。。写了几年sql,从没见过这样sql,对在哪里??????
解决方案十三:
lz的问题不是很懂捏如果把2个表之间设置了关联那么只要查询一个表那么另外的一个表中的所有数据难道还没查出来么?!?hql语句那不随便写啊.......
解决方案十四:
引用3楼felixz的回复:

多对一关系,cardnum在b表中是唯一的,但有可能a表中的 cardnum是b表中没有的非法值。

拿嘴说行就行啊??
解决方案十五:
sql查属性,hql查对象,貌似用连接查询ID都相等了怎么还可能没有cardnum,什么个情况!!

时间: 2024-09-14 08:41:25

高分求Hibernate联合查询解决方法,分不够开新贴加!!!的相关文章

c++-编译时出现这样的错误,求大神指点解决方法

问题描述 编译时出现这样的错误,求大神指点解决方法 程序如下:#includeusing namespace std;class zrf_Ratio;zrf_Ratio operator+(const zrf_Ratio& r1 const zrf_Ratio& r2);zrf_Ratio operator-(const zrf_Ratio& const zrf_Ratio&);zrf_Ratio operator*(const zrf_Ratio& const z

求android旋转字体解决方法

问题描述 求android旋转字体解决方法 android项目做了一个富文本编辑器,最近客户新增一个需求:可以设置旋转字体.类似windows里某些编辑器,如图: 查了一些资料,都没有找到解决方法.求大神们解答,感激不尽. 解决方案 http://blog.csdn.net/ljb_blog/article/details/10150909 解决方案二: android 旋转屏幕导致Activity重建解决方法关于android自定义字体解决方法KEIL MDK字体乱码的解决方法

Symfony2联合查询实现方法_php实例

本文实例讲述了Symfony2联合查询实现方法.分享给大家供大家参考,具体如下: 1.yml文件 Acme\MspadminBundle\Entity\MspArticle: type: entity table: msp_article manyToOne: Channel: targetEntity: MspChannel inversedBy: Articles joinColumn: name: channel_id referencedColumnName: channel_id Us

高分求关于自定义查询控件反射

问题描述 publicpartialclassUserControlSearch:UserControl{objectDataSource;//我希望这个查询控件的datasource是object或ienumrable类型,如果object类型对于以后的反射太复杂的话,定义为ienumrable也可以,最好不要再定义其他类型了,例如为table之类的,这样限制太死publicUserControlSearch(){InitializeComponent();}publicvoidInitial

js focus不起作用的解决方法(主要是因为dom元素是否加载完成)_javascript技巧

有一个文本框,id 为 d,用下面的 js 代码,想让其获得焦点. document.getElementById("d").focus(); 结果代码在 IE 中不起作用,要让 IE 中也获得焦点,得用类似如下的代码: 复制代码 代码如下: document.body.onload = function(){ document.getElementById("d").focus(); }

MySQL5 数据库中文乱码问题的解决方法

   由于Mysql是从版本 4迁移到Version 5的,原来的字符集是latin1,现在是UTF8,这就遇到了经典的乱码问题,即使通过phpadmin来访问,也是一片纷乱,还好在前端的展现正常. 在网上搜一下,很多帖子和方法,最后我通过如下步骤,终于纠正了多年来的乱码问题. 首先乱码是由于字符集的变化和混乱造成的. [root@localhost plugins]# /mysql -hlocalhost -ueygle -p eygle Enter password: Reading tab

PHP读取MYSQL数据库中文乱码的解决方法

最后还是用常见的方法:mysql_query中的"set names charset", 解决了.其中有一点要特别注意:PHP中设置使用"utf8",而不是"utf-8".就这样问题解决了 后来查资料发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,强制设置一下数据库编码即可解决MYSQL中文乱码的问题,代码如下: 解决

.net 2.0 mscorwks.dll开机报错问题的解决方法

早上一开机,发现服务器出现.net 2.0报错. 描述: Faulting application marc.mais.exe, version 2.0.0.11, stamp 46e64d37, faulting module mscorwks.dll, version 2.0.50727.42, stamp 4333e7ec, debug? 0, fault address 0x0025d237. 事件类型:    错误 事件来源:    .NET Runtime 2.0 Error Rep

hadoop 日常错误解决方法整理

hadoop 日常错误整理   ====描述 hive 执行show tables;  Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.unset(Ljava/lang/String;)V 解决方法 hive的版本是0.13.0太高,hadoop的版本较低. hadoop中没有对应的方法.降低hive的版本到0.11.0 ====描述 hive 的s