java

位置:IT落伍者 >> java >> 浏览文章

Hibernate高级查询实战[1]


发布日期:2023年05月09日
 
Hibernate高级查询实战[1]

大家知道在Hibernate Framework中提供了三种查询数据的方式

Hibernate Query Language (HQL)

它是ANSI SQL的最小OO Dialect

sessioncreateQuery(from Category c where cname like Laptop%);

entityManagercreateQuery(select c from Category c where cname like Laptop%);

Criteria query

它是HQL查询的延伸提供了一些高级查询功能例

sessioncreateCriteria(Categoryclass)

add( Restrictionslike(name Laptop%) );

Native SQL query :

sessioncreateSQLQuery(

select {c*} from CATEGORY {c} where NAME like Laptop%

)addEntity(c Categoryclass);

最近我在项目中经常遇到Hibernate数据查询的任务我对一些我遇到的较难的课题举例进行说明

《表述SELECT》

Criteria crit = sessioncreateCriteria(Userclass)

setProjection( ProjectionsprojectionList()

add( Projectionsproperty(lastname))

add( Projectionsproperty(firstname))

list();

《表述WHERE》

Criteria crit = sessioncreateCriteria(Userclass)

add(Restrictionseq(email foo@hibernateorg))

uniqueResult();

《表述GROUP》

Criteria crit = sessioncreateCriteria(Userclass)

setProjection( ProjectionsprojectionList()

add( ProjectionsgroupProperty(lastname))

add( ProjectionsgroupProperty(firstname))

list()

《表述ORDER》

Criteria crit = sessioncreateCriteria(Userclass)

addOrder( Orderasc(lastname) )

addOrder( Orderasc(firstname) )

list();

[] []

               

上一篇:Struts从零开始二、解决中文乱码的问题实例[4]

下一篇:Hibernate高级查询实战[2]