我有两个表 A 和 B, A 和 B 中都有一个 CardNum 非主键字段, 我想在查询 A 表时通过 CardNum 把B表中对应的记录读出来(CardNum 在B表中是唯一的),但有可能 A 表中的 CardNum 在 B 表中不存在,所以没有外键约束,用 SQL 来实现就是 SELECT a.*, b.* where a.CardNum=b.CardNum. 不知道使用 Nhibernate如何关联这两个表,我期望的效果是可以 A.B 这样就能访问到 A.cardnum 对应的 B 记录。
但有可能 a 表中的 cardnum 是 b 表中没有的非法值。
这样sql才对吧,直接调用sql不就行了
列表里的节点Object[0]就是你的A,Object[1]就是你的B,强制转化就oK了
String hql="SELECT a.*, b.* where a.CardNum=b.CardNum. ";
List<Object[]> list=this.getSession.createQuery(hql).list();
这样你查询出来的东西就存为了list。
节点Object[0]就是你的A表的东西,Object[1]就是你的B表的东西,转换成你映射的类就可以了。