一、一對多映射
1、在映射一對多的雙相關聯關系時,應該在one方把inverse屬性設為true,可以提高應用的性能。
2、建立兩個對象的雙向關聯時,應該同時修改關聯兩端的對象的應用屬性,這樣使程序更加健壯,提高業務邏輯層的獨立性,使業務邏輯層的程序代碼不受hibernate實現的影響;同理,當解除雙相關聯關系時,也應該修改關聯兩端的對象的相應屬性。
eg://添加
customer.getOrders().add(order);
order.setCustomer(customer);
//刪除
customer.getOrders().remove(order);
order.setCustomer(null);
3、在定義一對多映射中“一”的POJO類時,注意要private Set orders?= new HashSet();//通常把它初始化為集合實現類的一個實例,這樣避免訪問取值為null,引發NullPointerException異常,提高健壯性。
二、Session三種檢索方法:
1.load():根據給定OID從數據庫中加載一個持久化對象,如數據庫中沒有則拋出net.sf.hibernate.ObjectNotFoundException異常。
2.get():根據給定OID從數據庫中加載一個持久化對象,如數據庫中沒有則返回null。
3.find():按照參數指定的HQL語句加載一個或多個持久化對象,實際是HQL檢索方式的一種簡寫形式。
三、hql查詢:
在數組和Collection中的查詢:
String hql = "select??u from?User u where u in (:users)";
query.setParameterList("users", users);
//括號千萬別忘寫,否則出現如下錯誤:
2006-07-07 11:07:35 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 907, SQLState: 42000
2006-07-07 11:07:35 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00907: 缺失右括號
posted on 2006-08-16 15:37
阿成 閱讀(420)
評論(0) 編輯 收藏 所屬分類:
Hibernate