Hibernate4ʵս Ö® µÚÈý²¿·Ö£ºHibernateµÄ»ù±¾¿ª·¢(ËÄ)

2014-11-24 08:26:59 ¡¤ ×÷Õß: ¡¤ ä¯ÀÀ: 2

java´úÂ룺
1. List list = s.createCriteria(UserModel.class)
2. .add(Restrictions.eq("uuid", "3"))
3. .add(Restrictions.like("name", "%n%"))
4. .list();
5. Ô¼Êø¿ÉÒÔ°´ÕÕÂß¼­·Ö×飬ʾÀýÈçÏ£º
6. List cats = sess.createCriteria(Cat.class)
7. .add( Restrictions.like("name", "Fritz%") )
8. .add( Restrictions.or(
9. Restrictions.eq( "age", new Integer(0) ),
10. Restrictions.isNull("age")
11. )
12. ).list();
¶Ô½á¹û¼¯ÅÅÐò
¿ÉÒÔʹÓà org.hibernate.criterion.Order À´Îª²éѯ½á¹ûÅÅÐò¡£Ê¾ÀýÈçÏ£º

java´úÂ룺
1. List cats = sess.createCriteria(Cat.class)
2. .add( Restrictions.like("name", "F%")
3. .addOrder( Order.asc("name") )
4. .addOrder( Order.desc("age") )
5. .setMaxResults(50)
6. .list();
1£º¼ÙÈçÓÐÈçϳÌÐò£¬ÐèÒªÏòÊý¾Ý¿âÀïÃæ¼ÓÈç100000ÌõÊý¾Ý£º

java´úÂ룺
²é¿´¸´ÖƵ½¼ôÌù°å´òÓ¡
1. Session session = sessionFactory.openSession();
2. Transaction tx = session.beginTransaction();
3. for ( int i=0; i<100000; i++ ) {
4. Customer customer = new Customer(.....);
5. session.save(customer);
6. }
7. tx.commit();
8. session.close();
Õâ¸ö³ÌÐòºÜÏÔÈ»²»ÄÜÕý³£ÔËÐУ¬»áÅ׳öÄÚ´æÒç³öµÄÀýÍâ¡£°´ÕÕÇ°Ãæ½²¹ýµÄÔ­Àí£¬HibernateµÄsave·½·¨ÊÇÏȰÑÊý¾Ý·Åµ½ÄÚ´æÀïÃæ£¬Êý¾ÝÌ«¶à£¬µ¼ÖÂÄÚ´æÒç³ö¡£
ÄÇô¸ÃÈçºÎ½â¾öÄØ£¿
½â¾ö·½°¸:
1£ºÊ×ÏȽ« hibernate.jdbc.batch_sizeµÄÅúÁ¿×¥È¡ÊýÁ¿²ÎÊýÉèÖõ½Ò»¸öºÏÊÊÖµ£¨±ÈÈ磬10 - 50 Ö®¼ä£©£¬Í¬Ê±×îºÃ¹Ø±Õ¶þ¼¶»º´æ£¬Èç¹ûÓеϰ¡£
2£ºÅúÁ¿²åÈ룬һ¸ö¿ÉÐеķ½°¸ÈçÏ£º

java´úÂ룺
1. for ( int i=0; i<100000; i++ ) {
2. Customer customer = new Customer(.....);
3. session.save(customer);
4. if ( i % 20 == 0 ) {
5. //½«±¾ÅúÊý¾Ý²åÈëÊý¾Ý¿â£¬²¢ÊÍ·ÅÄÚ´æ
6. session.flush();
7. session.clear();
8. }
9. }
ÅúÁ¿¸üеÄ×ö·¨¸úÕâ¸öÀàËÆ
1£ºÄ¬ÈϵÄHibernateÊÇÓлº´æµÄ£¬³ÆÖ®ÎªÒ»¼¶»º´æ¡£
2£ºÒ²¿ÉÒÔʹÓÃStatelessSession£¬À´±íʾ²»ÊµÏÖÒ»¼¶»º´æ£¬Ò²²»ºÍ¶þ¼¶»º´æºÍ²éѯ»º´æ½»»¥
3£ºStatelessSessionÊǵͲãµÄ³éÏ󣬺͵ײãJDBCÏ൱½Ó½ü

java´úÂ룺
1. StatelessSession session = sessionFactory.openStatelessSession();
2. Transaction tx = session.beginTransaction();
3. ScrollableResults customers = session.getNamedQuery("GetCustomers") .scroll(ScrollMode.FORWARD_ONLY);
4. while ( customers.next() ) {
5. Customer customer = (Customer) customers.get(0);
6. customer.updateStuff(...);
7. session.update(customer);
8. } tx.commit(); session.close();
9.

×÷Õߣºjinnianshilongnian