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

2014-11-24 08:26:59 ¡¤ ×÷Õß: ¡¤ ä¯ÀÀ: 6
. ËùÓжÔʵÌå½øÐиüеÄÓï¾ä
3. ËùÓнøÐм¯ºÏɾ³ýµÄÓï¾ä
4. ËùÓжԼ¯ºÏÔªËØ½øÐÐɾ³ý£¬¸üлòÕß²åÈëµÄÓï¾ä
5. ËùÓнøÐм¯ºÏ²åÈëµÄÓï¾ä
6. ËùÓжÔʵÌå½øÐÐɾ³ýµÄÓï¾ä£¬Æä˳Ðò°´ÕÕ¶ÔÏóÖ´ÐÐ delete() µÄʱ¼ä˳Ðò
³ý·ÇÄãÃ÷È·µØ·¢³öÁËflush()Ö¸Á¹ØÓÚSessionºÎʱ»áÖ´ÐÐÕâЩJDBCµ÷ÓÃÊÇÍêÈ«ÎÞ·¨±£Ö¤µÄ£¬Ö»Äܱ£Ö¤ËüÃÇÖ´ÐеÄǰºó˳Ðò¡£ µ±È»£¬Hibernate±£Ö¤£¬Query.list(..)¾ø¶Ô²»»á·µ»ØÒѾ­Ê§Ð§µÄÊý¾Ý£¬Ò²²»»á·µ»Ø´íÎóÊý¾Ý¡£
lock·½·¨£ºÒ²ÔÊÐí³ÌÐòÖØÐ¹ØÁªÄ³¸ö¶ÔÏóµ½Ò»¸öРsession ÉÏ¡£²»¹ý£¬¸ÃÍѹܶÔÏó±ØÐëÊÇûÓÐÐ޸ĹýµÄ¡£Ê¾ÀýÈ磺s.lock(um, LockMode.READ);
×¢Ò⣺lockÖ÷Òª»¹ÊÇÓÃÔÚÊÂÎñ´¦ÀíÉÏ£¬¹ØÁª¶ÔÏóÖ»ÊÇÒ»¸ö¸½´øµÄ¹¦ÄÜ

»ñȡԪÊý¾Ý
Hibernate ÌṩÁËClassMetadata½Ó¿ÚºÍTypeÀ´·ÃÎÊÔªÊý¾Ý¡£Ê¾ÀýÈçÏ£º

java´úÂ룺
²é¿´¸´ÖƵ½¼ôÌù°å´òÓ¡
1. ClassMetadata catMeta = sf.getClassMetadata(UserModel.class);
2. String[] propertyNames = catMeta.getPropertyNames();
3. Type[] propertyTypes = catMeta.getPropertyTypes();
4. for (int i = 0; i < propertyNames.length; i++) {
5. System.out.println("name=="+propertyNames[i] + ", type==¡°
6. +propertyTypes[i]);
7. }
8.
HQL½éÉÜ
HibernateÅ䱸ÁËÒ»Öַdz£Ç¿´óµÄ²éѯÓïÑÔ£¬ÕâÖÖÓïÑÔ¿´ÉÏÈ¥ºÜÏñSQL¡£µ«ÊDz»
Òª±»Óï·¨½á¹¹ ÉϵÄÏàËÆËùÃÔ»ó£¬HQLÊǷdz£ÓÐÒâʶµÄ±»Éè¼ÆÎªÍêÈ«ÃæÏò¶ÔÏóµÄ²é
ѯ£¬Ëü¿ÉÒÔÀí½âÈç¼Ì³Ð¡¢¶à̬ ºÍ¹ØÁªÖ®ÀàµÄ¸ÅÄî¡£
¿´¸öʾÀý£¬¿´¿´sqlºÍHQLµÄÏàͬÓ벻ͬ£º
Sql£ºselect * from tbl_user where uuid=¡®123¡¯
HQL£ºselect Object(o) from UserModel o where o.uuid=¡®123¡¯
HQLÌØµã
1£ºHQL¶ÔJavaÀàºÍÊôÐÔÊÇ´óСдÃô¸ÐµÄ£¬¶ÔÆäËû²»ÊÇ´óСдÃô¸ÐµÄ¡£
2£º»ù±¾ÉÏsqlºÍHQLÊÇ¿ÉÒÔת»»µÄ£¬ÒòΪ°´ÕÕHibernateµÄʵÏÖÔ­Àí£¬×îÖÕÔËÐеϹÊÇsql£¬Ö»²»¹ýÊÇ×Ô¶¯Éú³ÉµÄ¶øÒÑ¡£
3£ºHQLÖ§³ÖÄÚÁ¬½ÓºÍÍâÁ¬½Ó
4£ºHQLÖ§³ÖʹÓþۼ¯º¯Êý£¬È磺count¡¢avg¡¢sum¡¢min¡¢maxµÈ
5£ºHQLÖ§³Öorder by ºÍ group by
6£ºHQLÖ§³ÖÌõ¼þ±í´ïʽ£¬È磺in¡¢like¡¢betweenµÈ
select×Ó¾ä
1£ºÖ±½Ó·µ»Ø¶ÔÏ󼯺ϣ¬ÐÎÈ磺select o from UserModel o
2£º·µ»ØÄ³¸öÌØ¶¨ÀàÐ͵ļ¯ºÏ£¬ÐÎÈ磺select o.name from UserModel o
3£º·µ»ØObject[]£¬ÐÎÈ磺select o.uuid,o.name from UserModel o
4£º·µ»ØList£¬ÐÎÈ磺select new List(o.uuid,o.name) from UserModel o
5£º·µ»ØÈÎÒâµÄ¶ÔÏó£¬ÐÎÈ磺select new cn.javass.h3.hello.A(o.uuid,o.name) from UserModel o £¬ÕâÒªÇóA¶ÔÏóÓÐÒ»¸ö¹¹Ôì·½·¨ÊÇ´«ÈëÕâÁ½¸ö²ÎÊý
6£º·µ»ØMapÀàÐÍ£¬ÐÎÈ磺select new Map(o.uuid as Id,o.name as N) from UserModel o £¬·µ»ØµÄ½á¹û£¬ÒÔasºóÃæµÄ±ðÃû×ömapµÄkey£¬¶ÔÓ¦µÄÊý¾Ý×öÖµ

from×Ó¾ä

1£ºÖ±½Ófrom¶ÔÏó£¬ÐÎÈ磺 from UserModel
2£º¿ÉÒÔ·ÖÅä±ðÃû£¬ÐÎÈ磺from UserModel as um £¬ as¹Ø¼ü×Ö¿ÉÒÔÊ¡ÂÔ
3£ºÈç¹ûfromºóÃæÓжà¸ö¶ÔÏó£¬ÐÎÈ磺from UserModel,DepModel £¬Ï൱ÓÚ¶à±íÁªºÏ²éѯ£¬·µ»ØËûÃǵĵѿ¨¶û»ý

¾Û¼¯º¯Êý
1£ºÊÜÖ§³ÖµÄÓÐavg,sum,min,max,count
2£º¹Ø¼ü×Ö distinct Óëall Ò²¿ÉÒÔʹÓã¬ËüÃǾßÓÐÓë SQL ÏàͬµÄÓïÒ壬±ÈÈ磺
select count(distinct o.name) from UserModel o
nwhere×Ó¾ä
1£ºÈç¹ûÇ°ÃæÃ»ÓÐÖ¸ÅɱðÃû£¬ÄǾÍÖ±½ÓʹÓÃÊôÐÔÃû
2£ºÈç¹ûÖ¸ÅÉÁ˱ðÃû£¬±ØÐëʹÓñðÃû.ÊôÐԵķ½Ê½
3£ºÔÚwhere×Ó¾äÖÐÔÊÐíʹÓõıí´ïʽ°üÀ¨´ó¶àÊýÔÚ SQLÖÐʹÓõıí´ïʽ£¬°üÀ¨£º
(1)ÊýѧÔËËã·û +£¬-£¬*£¬/
(2)¶þ½øÖƱȽÏÔËËã·û =, >=, <=, <>, !=, like
(3)Âß¼­ÔËËã·û and£¬or£¬not
(4)À¨ºÅ ( )£¬±íʾ·Ö×é
(5)in, not in, between, is null, is not null, is empty, is not empty, member of and not member of
(6)×Ö·û´®Á¬½Ó·û ...||... or concat(...,...)
(7)current_date(), current_time(), and current_timestamp()
(8)second(...)¡¢minute(...)¡¢hour(...)¡¢day(...)¡¢month(...) ºÍ year(...)
(9)EJB-QL 3.0 ¶¨ÒåµÄÈκι¦ÄÜ»ò²Ù×÷·û£ºsubstring(), trim(), lower(), upper(), length(),locate(), abs(), sqrt(), bit_length(), mod()
(10)coalesce() ºÍ nullif()
(11)str() °ÑÊý×Ö»òÕßʱ¼äֵת»»Îª¿É¶ÁµÄ×Ö·û´®
(12)cast(... as ...)£¬ÆäµÚ¶þ¸ö²ÎÊýÊÇij Hibernate ÀàÐ͵ÄÃû×Ö£¬ÒÔ¼° extract(... from ...)£¬Ö»Òª ANSI cast() ºÍ extract() ±»µ×²ãÊý¾Ý¿âÖ§³Ö
(13)HQL index() º¯Êý£¬×÷ÓÃÓÚ join µÄÓÐÐò¼¯ºÏµÄ±ðÃû¡£
(14)HQL º¯Êý£¬°Ñ¼¯ºÏ×÷Ϊ²ÎÊý£ºsize(), minelement(), maxelement(), minindex(), maxindex()£¬»¹ÓÐÌØ±ðµÄ elements() ºÍ indices º¯Êý£¬¿ÉÒÔÓëÊýÁ¿´Ê¼ÓÒÔÏÞ¶¨£ºsome, all, exists, any, in¡£
(15)ÈκÎÊý¾Ý¿âÖ§³ÖµÄ SQL ±êÁ¿º¯Êý£¬±ÈÈç sign(), trunc(), rtrim(), sin()
(16)JDBC ·ç¸ñµÄ²ÎÊý´«Èë
(17)ÃüÃû²ÎÊý :name£¬:start_date£¬:x1
(18)SQL Ö±½Ó³£Á¿ 'foo', 69, 6.66E+2, '1970-01-01 10:00:01.0'
(19)Java public static final ÀàÐ͵ij£Á¿ eg.Color.TABBY
group by ×Ó¾ä
1£º¶ÔÓÚ·µ»Ø¾Û¼¯ÖµµÄ²éѯ£¬¿ÉÒÔ°´ÕÕÈκÎÊôÐÔ½øÐзÖ×é
2£º¿ÉÒÔʹÓÃhaving×Ó¾ä
3£ºsqlÖеľۼ¯º¯Êý£¬¿ÉÒÔ³öÏÖÔÚhaving×Ó¾äÖÐ
4£ºgroup by ×Ó¾äÓë order by ×Ó¾äÖж¼²»Äܰüº¬ËãÊõ±í´ïʽ
5£º²»ÄÜgroup by ij¸öʵÌå¶ÔÏ󣬱ØÐëÃ÷È·µÄÁгöËùÓеľۼ¯ÊôÐÔ

order by ×Ó¾ä
²éѯ·µ»ØµÄÁÐ±í£¨list£©¿ÉÒÔ°´ÕÕÒ»¸ö·µ»ØµÄÀà»ò×é¼þ£¨components£©ÖеÄÈκÎÊôÐÔ½øÐÐÅÅÐò£¬¿ÉÑ¡µÄ asc »ò desc ¹Ø¼ü×ÖÖ¸Ã÷Á˰´ÕÕÉýÐò»ò½µÐò½øÐÐÅÅÐò¡£

×Ó²éѯ
¶ÔÓÚÖ§³Ö×Ó²éѯµÄÊý¾Ý¿â£¬Hibernate Ö§³ÖÔÚ²éѯÖÐʹÓÃ×Ó²é