java - How to verify whether a record with certain field values exists in a DB with JPA? -


जेपीए के साथ मौजूद खंड को कैसे व्यक्त किया जाए?

पहले (हम ओरेकल पर हैं और एक डुएल तालिका है):

  @Entity () @Table (नाम = "DUAL") @ReadOnly सार्वजनिक कक्षा दोहरी {@Id स्ट्रिंग डमी; सार्वजनिक स्ट्रिंग getDummy () {वापसी डमी; }}  

तब:

  मानदंडबिल्डर सीबी = em.getCriteriaBuilder (); CriteriaQuery & LT; दोहरी & gt; Cq = cb.createQuery (Dual.class); सबक्वेरी & LT; ProtokollSatz & gt; Sq = cq.subquery (ProtokollSatz.class); रूट के & lt; ProtokollSatz & gt; Root1 = sq.from (प्रोटोकॉल्स्त्स्। वर्ग); Sq.where (cb.and (cb.equal (root1। & Lt; पूर्णांक & gt; मिल ("फ़ील्ड 1"), पूर्णांक.वल्यूओफ़ (फ़ील्ड 1)), सीबी.एम्बल (रूट 1। & Lt; पूर्णांक & gt; मिल ("फ़ील्ड 2"), Integer.valueOf (field2)))); cq.where (cb.exists (वर्ग)); TypedQuery & LT; दोहरी & gt; क्वेरी = em.createQuery (cq); बूलियन ifExists = query.getResultList ()। आकार () & gt; 0;  

आप प्राप्त करते हैं:

  SELECT t0.DUMMY से दोहरी टी 0 जहां मौजूद है (चुनें? PROTOKOLL_SAETZE T1 WHERE से ((t1.FIELD1 =?) और ( T1.FIELD2 =?)))  

एक्लिपसेलिंक के साथ परीक्षण किया गया।


Comments

Popular posts from this blog

c# - sqlDecimal to decimal clr stored procedure Unable to cast object of type 'System.Data.SqlTypes.SqlDecimal' to type 'System.IConvertible' -

Calling GetGUIThreadInfo from Outlook VBA -

Obfuscating Python code? -