ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

JPQL(¶þ)
2015-11-21 01:40:28 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1´Î
Tags£ºJPQL
\¡±¡£

5.8¡¢NULL

NULL²Ù×÷·ûÓÃÀ´ÅжÏÊôÐÔÊÇ·ñÊÇnullÖµ£¬ÈçÏÂ

ÅжÏÊôÐÔÊÇnull£¬Ê¹Óá°ISNULL¡±¹Ø¼ü×Ö£¬ÈçÏÂ

SELECT c FROM Customer c WHERE c.address IS NULL

ÅжÏÊôÐÔ²»Îªnull£¬Ê¹Óá°IS NOTNULL¡±¹Ø¼ü×Ö£¬ÈçÏÂ

SELECT c FROM Customer c WHERE c.address IS NULL

NULL²Ù×÷·ûÒ²¿ÉÒÔÓÃÔÚ²ÎÊý²éѯÖУ¬ÓÃÓÚÅжÏÊäÈëµÄ²ÎÊýÊÇ·ñΪnullÖµ£¬ÈçÏÂ

SELECT c FROM Customer c WHERE :zip IS NOT NULLL ANDc.address.zip=:zip

5.9¡¢EMPTY

EMPTY²Ù×÷·ûÓÃÓÚÅжÏʵÌåµÄ¼¯ºÏÀàÊôÐÔÊÇ·ñΪ¿Õ¡£ËüÓëNULL²Ù×÷·û²»Ì«Ïàͬ£¬Ö÷ÒªÊÇÕë¶ÔÊôÐÔÊǼ¯ºÏÀàµÄÅжϡ£

Åжϼ¯ºÏÀàÊôÐÔΪ¿ÕÖµ£¬Ê¹ÓÃIS EMPTY£¬ÈçÏÂ

SELECT c FROM Customer c WHERE c.orders IS EMPTY

×¢Òâ:µ±Ê¹ÓÃÄÚÁ¬½Ó²éѯʱ£¬ÓÉÓÚ´Ëʱ¹ØÁªºóµÄ±íÖÐûÓÐnullÖµ£¬ËùÒÔ¼´Ê¹²éѯµ½¿ÕÖµ£¬²éѯ½á¹ûÖÐÒ²²»»á³öÏÖ£¬ËùÒÔÔÚʹÓÃÄÚÁ¬½Ó²éѯʱעÒⲻҪʹÓÃIS MPTYÀ´ÅжϿÕÖµ£¬ÈçÏÂ

SELECT c FROM Customer c JOIN c.orders o WHERE c.orders ISEMPTY

Åжϼ¯ºÏÀàÊôÐÔ²»ÊÇ¿ÕÖµ£¬Ê¹ÓÃIS NOT EMPTY£¬ÈçÏÂ

SELECT c FROM Customer c WHERE c.orders IS NOT EMPTY

?

5.10¡¢MEMBER OF

MEMBER OF²Ù×÷·ûÓÃÓÚÅжÏÒ»¸öʵÌåÊÇ·ñ°üº¬ÔÚ¼¯ºÏÀà¶ÔÏóÖУ¨MEMBEROF ǰ¿ÉÒÔÌí¼ÓNOT£©£¬ÈçÏÂ

//²éѯ¶©µ¥ºÅΪ1µÄ¿Í»§ÊµÌå

SELECT c FROM Customer c WHERE :order MEMBER OF c.orders

Query query=entityManager.createQuery(jpql);

Order o=entityManager.find(Order.class,1);

query.setParameter(¡°order¡±,o);

5.11¡¢º¯Êý±í´ïʽ

JPQLÖÐÒ²¶¨ÒåÁËһЩ³£Óõĺ¯Êý£¬ÕâЩº¯Êý¿ÉÒÔÕë¶Ô×Ö·ûÐÍ¡¢ÊýÖµÐͺÍÈÕÆÚÐÍÊýֵʹÓá£

×Ö·û´®º¯Êý

×Ö·û´®º¯Êýͨ³£¿ÉÔÚ²éѯʱʹÓã¬ÀýÈç²éѯ¹Ë¿ÍÐÕÃûµÄ³¤¶È´óÓÚ10µÄJPQLÓï¾äÈçÏÂ:

SELECT c FROM Customer c WHERE LENGTH(c.name)>10

JPQL ÖÐÌṩµÄ×Ö·û´®º¯ÊýÖ÷ÒªÓÐ:

3) CONCAT(str1,str2):·µ»ØÁ¬½ÓÁ½¸ö×Ö·û´®µÄÖµ

4) SUBSTRING(str,start,len):·µ»Ø×Ö·û´®µÄÒ»¶Î£¬startΪ×Ö·û´®µÄ¿ªÊ¼Ë÷Òý루µÚÒ»¸ö×Ö·ûλÖÃΪ1£©£¬lenΪ½ØÈ¡µÄ³¤¶È£»

5) TRIM(str)£ºÈ¥µô×Ö·û´®µÄÊ×βµÄ¿Õ¸ñ£»

6) LENGTH(str):·µ»Ø×Ö·û´®µÄ³¤¶È£»

ÊýÖµº¯Êý

ÊýÖµº¯Êýͨ³£Ò²¿ÉÒÔÔÚ²éѯʱʹÓã¬ÈçÏ£º

SELECT c FROM Customer c WHERE ABS(c.asset)>20

JPQL ÖÐÌṩµÄÖ÷ÒªÊýÖµº¯ÊýÓÐ:

l ABS(num)£º·µ»ØÊýµÄ¾ø¶ÔÖµ£»

l SQRT(num)£º·µ»ØÊýµÄƽ·½£»

l MOD(int,int)£ºÈ¡Ä££»

l SIZE:·µ»Ø¼¯ºÏÀàµÄ×ÜÊý;

?

ÈÕÆÚº¯Êý

JPAÌṩÁËÈýÖÖ»ñȡϵͳµ±Ç°Ê±¼äµÄ¸ñʽµÄ·½·¨:

l CURRENT_DATE

l CURRENT_TIME

l CURRENT_TIMESTAMP

5.12¡¢×Ó²éѯ

µ±Ò»¸ö²éѯÌõ¼þÒÀÀµÓÚÁíÒ»¸ö²éѯ½á¹ûʱ£¬¾ÍÐèҪʹÓÃ×Ó²éѯ£¨Ç¶Ìײéѯ£©£¬ÈçÏÂ

SELECT c FROM Customer c WHERE c.age > (SELECT AVG(c.age)FROM Customer c)

EXISTS±í´ïʽ

EXISTS±í´ïʽÓÃÓÚÅжÏ×Ó²éѯµÄ½á¹û£¬Èç¹û×Ó²éѯµÄ½á¹ûÓÐÒ»¸ö»ò¶à¸ö£¬Ôò·µ»Øtrue£»Èç¹û×Ó²éѯûÓзµ»ØÈκνá¹û£¬Ôò·µ»Øfalse¡£Óï·¨ÈçÏÂ:

[NOT] EXISTS (×Ó²éѯ±í´ïʽ)

Èç²éѯϵͳµ±Ç°ÈÕÆÚ֮ǰµÄ¶©µ¥ËùÊôµÄ¿Í»§£¬ÈçÏÂ

SELECT c FROM Customer c WHERE EXISTS

(SELECT o FROM c.orders o WHERE o.createTime

Ò²¿ÉÒÔÔÚEXISTS¹Ø¼ü×Öǰ¼ÓÉÏ¡°NOT¡±±íʾ²»´æÔÚ£¬²éѯ½á¹ûÕýºÃÓëEXISTSÏà·´¡£

ALLºÍANY±í´ïʽ

µ±×Ó²éѯµÄ·µ»Ø½á¹ûÓжà¸ö£¬¶¥²ã²éѯµÄÌõ¼þʹÓÃ=£¬<£¬<=£¬>,>=£¬<>ÕâЩ±È½ÏÀ´Âú×ãÌõ¼þ£¬¾ÍÐèҪʹÓÃALL¡¢ANYºÍSOME£¨ANY¡¢SOMEÓëNOT ALLµÈ¼Û£¬Ö»Òª´æÔÚÒ»¸ö¼´¿É£©±í´ïʽ£¬»ù±¾Óï¾äÈëÈçÏÂ:

{ALL|ANY|SOME}(×Ó²éѯ)

SELECT o FROM Order o WHERE 50 < ANY (SELECT l.quantityFROM o.lineItems l) //²éѯ¶©µ¥Ã÷ϸÖдæÔÚ50¸öÒÔÉϵĶ©µ¥

5.13¡¢·Ö×é

·Ö×é²éѯÊÇJPQLÖкÜÖØÒªµÄ²éѯ£¬Ëü¿ÉÒÔ°´ÕÕÖ¸¶¨µÄÊôÐÔ½«Êý¾Ý·Ö×飬ͨ³£ÔÚͳ¼ÆÊý¾ÝʱʹÓá£

·Ö×é²éѯͨ³£Ê¹Óá°GROUPBY¡±±í´ïʽºÍ¡°HAVING¡±±í´ïʽ£¬·Ö×é²éѯµÄ»ù±¾Óï·¨ÈçÏÂ:

GROUP BY <·Ö×é×Ó¾ä>£¨HAVING £©

¡°GROUPBY¡±¹Ø¼ü×ÖºóÖ¸Ã÷·Ö×éµÄÊôÐÔ£¬¡°HAVING¡±Ôò¿ÉÒÔ¶Ô·Ö×éºóµÄÊý¾Ý½øÐйýÂË£¬×÷ÓÃÏ൱ÓÚWHERE×Ӿ䣬ֻÄÜÓÃÔÚ·Ö×é²éѯÖУ¬ÈçÏÂ

SELECT c FROM Customer c GROUP BY c.asset HAVING AVG(c.asset)>1000

?

5.14¡¢ÅÅÐò

ORDER BY×Ó¾ä¿ÉÒÔ¶Ô²éѯ½á¹û½øÐÐÅÅÐò£¬Óï·¨ÈçÏÂ:

ORDER BY ÅÅÐòÊôÐÔ[ASC |DESC]{, ÅÅÐòÊôÐÔ[ASC |DESC]}*

ÆäÖС°ORDERBY¡±¹Ø¼ü×ÖºóÖ¸¶¨ÅÅÐòµÄÊôÐÔ£¬¶à¸öÊôÐÔÅÅÐòÓ÷ֺŷָÈçÏ£º

SELECT c FROM Customer c ORDER BY c.id ASC,c.name DESC

×¢Ò⣺ÔÚ¶¯Ì¬×é×°JPQLÖ¸¶¨¶à¸öÅÅÐòÓòʱ£¬²»ÄÜʹÓÃHashMap,¶øÒªÊ¹ÓÃLinkedHashMap¡£

Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 2/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºSQL½á¹¹»¯²éѯÓïÑÔ¼°Mysql»ù±¾²Ù×÷ ÏÂһƪ£ºÊý¾Ý¿âSQLServer2012±Ê¼Ç£¨¶þ£©¨..

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ: