左连接

hackya 2009-10-22 10:57:11
类A.java
public class A{
private int id;//主键
private String sNo;//外键;
private String name;
..........省略getter,setter
}
public class B{
private String sNo;//主键
privat String sex;
..........省略getter,setter
}

SQL:select * from A a left join B b on a.sNo=b.sNO

怎么用HQL怎么写?并且配置文件怎么配呀!大家帮我看看!谢谢了!
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hackya 2010-12-21
  • 打赏
  • 举报
回复
虽然分给了 但是没有满意的答案.
hackya 2009-10-22
  • 打赏
  • 举报
回复
public class A{
private int id;//主键
private B b;
private String name;
....省略get,set
}
public class B{
private String sNo;//主键
privat String sex;
..........省略getter,setter
}
一下是部分映射
<many-to-one name="b"
class="B"
fetch="select"
insert="false"
update="false">
<column name="sNo" />
</many-to-one>

看看我的多对一的配置正确的没有呀
HQL:form A a left join a.b b where 1=1

查询包空对象异常!

大哥!大姐!怎么办?
closewbq 2009-10-22
  • 打赏
  • 举报
回复
迫切左外连接检索好像是配置lazy=false,outer-join=true
hackya 2009-10-22
  • 打赏
  • 举报
回复
楼上的属性信息和映射关系怎么弄?
buqi001 2009-10-22
  • 打赏
  • 举报
回复
配置文件一般配置的是属性信息和映射关系,你要实现的这个功能,可以用hql="select ****(你要查找的属性,或者是对象也可以比如,A,B) FROM A , B where A.sNo = B.sNo"
  • 打赏
  • 举报
回复
楼上那个是交叉连接,与左连接实现的效果是不一样的

Hibernate 中要使用 LEFT JOIN 必须在 ORM 实体映射中配置关联,否则你只能使用原生 SQL 进行查询。
ysmxiaoqi 2009-10-22
  • 打赏
  • 举报
回复
HQL是对内存中的对象进行操作,左连接什么的是对数据库中的表进行操作,不是一码事

select A.id , A.name , B.sex FROM A , B where A.sNo = B.sNo;

配置文件就不用配置了

67,513

社区成员

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

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