注:原创作品,分享以供交流学习,转载请注明出处
本博文实例假定:
1,Person是 一个实体类。
2. Person类中有一个关联实体Event 属性名为:myEvent
3. ClessTest 是一个实体类。
第一:HQL from语句
1,
结果类型:List<Person>
2,
hibernate3.2.3之前总是对的。
hibernate3.2.3之后如果myEvent是普通属性或关联的实体
也是对的,如果myEvent是一个集合会出异常
因此hibernate推荐使用下面的方式:
查出的结果是:List<Person>
3,
结果类型: List<Person,Event>
4,
查询出来是:是一个集合,集合元素是Person,myEvent组成的数组。
结果类型: List<Person,Event>
5,
查询出来是:是一个集合,集合元素是Person,myEvent组成的数组。
结果类型: List<Person,Event>
6,
结果类型: List<Person,Event>
7,
结果类型: List<Person,Event>
第二:HQL select语句
1,
结果类型: List<String>
2,
结果类型: List<Object[String,Person]>
3,
结果类型:List<String,String>
4,
前提ClassTest 类有两个参数的构造器。
结果类型:List<ClassTest>
5,
结果类型: List<Map<String,String>>
6,
结果类型:List<String>
本博文实例假定:
1,Person是 一个实体类。
2. Person类中有一个关联实体Event 属性名为:myEvent
3. ClessTest 是一个实体类。
第一:HQL from语句
1,
from Person 或者 from Person as p
结果类型:List<Person>
2,
from Person as p where p.myEvent.title = :title
hibernate3.2.3之前总是对的。
hibernate3.2.3之后如果myEvent是普通属性或关联的实体
也是对的,如果myEvent是一个集合会出异常
因此hibernate推荐使用下面的方式:
select p from Person as p inner join p.myEvent as e
where e.title = :title
和上面的语句是等效的。
查出的结果是:List<Person>
3,
from Person as p
inner join p.myEvent as event
where event.title = : title
结果类型: List<Person,Event>
4,
from Person as p
inner join p.myEvent as event
where event.title = : title
查询出来是:是一个集合,集合元素是Person,myEvent组成的数组。
结果类型: List<Person,Event>
5,
from Person as p
left outer join p.myEvent as event
where event.title = : title
查询出来是:是一个集合,集合元素是Person,myEvent组成的数组。
结果类型: List<Person,Event>
6,
from Person as p
right outer join p.myEvent as event
where event.title = : title
结果类型: List<Person,Event>
7,
from Person as p
full join p.myEvent as event
where event.title = : title
结果类型: List<Person,Event>
第二:HQL select语句
1,
select p.name from Person as p
结果类型: List<String>
2,
select p.name,p from Person as p
结果类型: List<Object[String,Person]>
3,
select new List(p.name,p.address) from Person as p
结果类型:List<String,String>
4,
select new ClassTest(p.name,p.address) from Person as p
前提ClassTest 类有两个参数的构造器。
结果类型:List<ClassTest>
5,
select new map(p.name as personName) from Person as p
结果类型: List<Map<String,String>>
6,
select p.name || - || p.address from Person as p
结果类型:List<String>