查詢
HQL和Criteria
HQL(Hibernate Query Language)
面向對象的查詢語言,與SQL不同,HQL中的對象名是區分大小寫的(除了Java類和屬性其他部分不區分大小寫);HQL中查的是對象而不是表,并且支持多態;HQL主要通過Query來操作,Query的創建方式:
Query q = session.createQuery(hql);
From Unicorn as unicorn where unicorn.name=:n
From Unicorn as unicorn where unicorn.name=:n and unicorn.birthday<:bir
Criteria
Criteria是一種比HQL更面向對象的查詢方式:其創建方式;
Criteria crit =session.createCriteria(DomainClass.class);
簡單屬性條件如: crit.add(Restrictions.eq(propertyName,value));
Crit.add(Restrictions.eqProperty(propertyName,otherPropertyName);
Crit.add(Restrictions.lt(“birthday”,new Date()));//lt是小于,gt是大于
8.實體類或屬性名與數據庫關鍵字沖突問題:
User在oracle中是關鍵字,當類名為User時,可通過以下兩種方式解決:
1. 在class中指定table,且table 名不為user,<class name=”Unicorn” table=”unicorn”>
2. 在table屬性中的值加反引號,可把它當字符串處理而非關鍵字:
<class name=”`User`”>