设为首页 加入收藏

TOP

在Hibernate中使用HQL通过Join进行关联查询
2014-11-24 13:55:53 来源: 作者: 【 】 浏览:2
Tags:Hibernate 使用 HQL 通过 Join 进行 关联 查询

使用HQL的Join进行关联查询,需要具备以下几个条件:


以Person和Car为例(Person与Car是一对多的关系)


1. 一对多的关系需要体现到实体类和配置文件中(注解也一样)


2. from关键字后面只有一个实体类名,也就是Person。Join使用的时候,实际上是join的Person的属性


下面写一个完整的例子:


1、数据结构:


create table one11_person(
id varchar(32) not null,
name varchar(20)
);
alter table one11_person
add constraint one11_person_pk primary key(id);
create table one11_car(
id varchar(32) not null,
name varchar(20),
personid varchar(32)
);
alter table one11_car
add constraint one11_car_pk primary key(id);
alter table one11_car
add constraint one11_car_fk foreign key(personid) references one11_person(id);


2:hbm.xml文件:


Person.hbm.xml文件:



















Car.bbm.xml文件:
















3:类文件略。


4:关联查询代码:


public void query(){
Session s = HibernateUtil.getSessionFactory().getCurrentSession();
s.beginTransaction();
List list = s.createQuery("select new map(p.name as pname,c.name as cname) from One11Person as p join p.one11Cars as c").list();
s.getTransaction().commit();
System.err.println(list);
}


粗体部分为查询语句。其中使用了new map()和join关键字。对于join之后的one11Cars属于p的一个属性。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java中字符替方法replace之发现 下一篇Python ftp操作脚本&常用函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)
·到底应该用MySQL还是 (2025-12-24 15:18:11)
·进入Linux世界大门的 (2025-12-24 14:51:47)
·Download Linux | Li (2025-12-24 14:51:44)