'tách rời khỏi đối tượng session'
Tiêu chuẩn tách rời có thể được sử dụng trong hai kịch bản:
Xây dựng tiêu chí truy vấn không có đối tượng session:
phiên chỉ yêu cầu trong quá trình thực hiện truy vấn/nộp truy vấn cơ sở dữ liệu, không phải trong khi xây dựng truy vấn.
Ex:
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Department.class);
detachedCriteria.add(Restrictions.eq("DEPTID", 1));
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property("DEPTID"));
detachedCriteria.setProjection(projectionList);
//Add more
.............................
Trong đoạn mã trên để bạn tìm thấy bất kỳ sự cần thiết của việc có đối tượng session cho việc xây dựng như một truy vấn tiêu chí? hoàn toàn KHÔNG.
Xây dựng cùng một truy vấn tiêu chí cho nhiều lần:
Xây dựng nó một lần bất kể đối tượng phiên và có thể được sử dụng bất cứ khi nào/bất cứ nơi nào bạn muốn.
Cuối cùng khi đối tượng session có sẵn, sử dụng các truy vấn trên với phiên như sau:
detachedCriteria.getExecutableCriteria(session).list();
http://docs.jboss.org/hibernate/core/3.3/reference/en/html /querycriteria.html#querycriteria-detachedqueries – Reddy