在使用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