Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

हाइबरनेट @OneToMany MySQLSyntaxErrorException फेंकता है:आपको अपने SQL सिंटैक्स में एक त्रुटि है

आप इस तरह डीटीओ प्रोजेक्शन में संग्रह का चयन नहीं कर सकते:

SELECT new com.tim.core.dto.client.MinimalContactDTO(c.id, c.version, c.name, c.title, c.email, c.createdDate, **c.phones**)

परिणामसेट एक स्प्रेडशीट की तरह है, वस्तुओं के ग्राफ़ की तरह नहीं।

आपको अपना डीटीओ इस तरह बदलना है:

public MinimalContactDTO(
    Long id, Long version, String name, String title, String email, 
    Date createdDate, ContactPhone phone) {
    ...
}

अब, आप एक बार में केवल एक फ़ोन पास कर सकते हैं:

SELECT new com.tim.core.dto.client.MinimalContactDTO(
    c.id, c.version, c.name, c.title, c.email, c.createdDate, p)
from CONTACT c 
JOIN c.phones p
where 
( 
    c.localRecordStatus IS NULL OR 
    c.localRecordStatus IN (:openStatusList) )
) 

फिर, आप हाइबरनेट ResultTransformer




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रत्येक के लिए अद्वितीय मान और गणना प्राप्त करें

  2. मैं एक अद्यतन क्वेरी में तीन टेबल जॉइन कैसे कर सकता हूं?

  3. MySQL विशेषक असंवेदनशील खोज (स्पेनिश उच्चारण)

  4. डेटाबेस में डुप्लिकेट स्ट्रिंग खोजें

  5. कैसे चुनें तेज करने के लिए .. एकाधिक कॉलम पर MySQL में प्रश्नों की तरह?