在使用Entity Bean時,爲了減少網絡調用,提高系統性能,在不同的層間傳遞數據時,通常會使用DTO,原因來自於EJB對象無法序列化傳送到遠程,但是Hibernate中使用的POJO對象是可以序列化的,所以可以通過使用脫管對象來替代EJB中的DTO而無須序列化。這樣省去了開發DTO對象(通常DTO對象只是對Entity Bean的簡單鏡像)。
代碼實例:
以下是一個Session Bean代碼的一部分。
public java.util.List getBookByName(String name){
java.util.List books=null;
try {
……
books=session.createQuery("from Book as book where book.book_name like ?").setString(0,"%"+name+"%").list();
session.close();
} catch (Exception e1) {
e1.printStackTrace();
}
return books;
}
當然爲了支持序列化Book持久化類必須實現java.io.serialize