ä½ä¸ºéæ©ï¼Hibernateæä¾äºåºäºå½ä»¤çAPIï¼å¯ä»¥ç¨detached objectçå½¢å¼ææ°æ®ä»¥æµçæ¹æ³å å
¥å°æ°æ®åºï¼æä»æ°æ®åºè¾åºãStatelessSession
没ææä¹
åä¸ä¸æï¼ä¹ä¸æä¾å¤å°é«å±ççå½å¨æè¯ä¹ãç¹å«æ¯ï¼æ ç¶æsessionä¸å®ç°ç¬¬ä¸çº§cache,ä¹ä¸å第äºçº§ç¼åï¼æè
æ¥è¯¢ç¼å交äºãå®ä¸å®ç°äºå¡ååï¼ä¹ä¸å®ç°èæ°æ®æ£æ¥ãç¨stateless
sessionè¿è¡çæä½çè³ä¸çº§èå°å
³èå®ä¾ãstateless session忽ç¥éåç±»(Collections)ãéè¿stateless sessionè¿è¡çæä½ä¸è§¦åHibernateçäºä»¶æ¨¡å忦æªå¨ãæ ç¶æsessionå¯¹æ°æ®çæ··æ·ç°è±¡å
ç«ï¼å ä¸ºå®æ²¡æç¬¬ä¸çº§ç¼åãæ ç¶æsessionæ¯ä½å±çæ½è±¡ï¼åä½å±JDBCç¸å½æ¥è¿ã
StatelessSession session = sessionFactory.openStatelessSession(); Transaction tx = session.beginTransaction(); ScrollableResults customers = session.getNamedQuery("GetCustomers") .scroll(ScrollMode.FORWARD_ONLY); while ( customers.next() ) { Customer customer = (Customer) customers.get(0); customer.updateStuff(...); session.update(customer); } tx.commit(); session.close();
注æå¨ä¸é¢çä¾åä¸ï¼æ¥è¯¢è¿åçCustomer
å®ä¾ç«å³è¢«è±ç®¡(detach)ãå®ä»¬ä¸ä»»ä½æä¹
åä¸ä¸æé½æ²¡æå
³ç³»ã
StatelessSession
æ¥å£å®ä¹çinsert(), update()
å delete()
æä½æ¯ç´æ¥çæ°æ®åºè¡çº§å«æä½ï¼å
¶ç»ææ¯ç«å»æ§è¡ä¸æ¡INSERT, UPDATE
æ DELETE
è¯å¥ãå æ¤ï¼å®ä»¬çè¯ä¹åSession
æ¥å£å®ä¹çsave(), saveOrUpdate()
ådelete()
æä½æå¾å¤§çä¸åã