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

बिट या चार के बजाय बूलियन के लिए JPA, MySQL और TinyInt(1) हाइबरनेट करें

@टाइप एनोटेशन एक हाइबरनेट एनोटेशन है।

पूर्ण JPA2 में (हाइबरनेट 3.6+ . के साथ) ), एक बूलियन फ़ील्ड को TINYINT(1) के बजाय एक TINYINT(1) SQL प्रकार में मैप करने का तरीका, columnDefinition विशेषता का उपयोग करना है।

@Column(nullable = false, columnDefinition = "TINYINT(1)")
private boolean enabled;

nb:लंबाई विशेषता का इस मामले में कोई प्रभाव नहीं पड़ता है, तो हम (1) सिंटैक्स का उपयोग करते हैं।

हाइबरनेट 4.0+ . के साथ , इस प्रकार का सिंटैक्स इस तरह रनटाइम त्रुटि का कारण बन सकता है:

Wrong column type Found: bit, expected: TINYINT(1)

ऐसा लगता है कि इस मामले में, आपका एकमात्र तरीका tinyInt1isBit=false का उपयोग करना है MySQL डेटासोर्स कनेक्शन स्ट्रिंग में इस तरह:

jdbc:mysql://server_host:3306/database?tinyInt1isBit=false

वैसे, अब आप लंबाई विशेषता का उपयोग इस तरह कर सकते हैं:

@Column(nullable = false, columnDefinition = "TINYINT", length = 1)
private boolean enabled;


  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. MySQL:कौन सा संस्करण जांचें:32 बिट या 64 बिट?

  3. त्रुटि:Node.js MYSQL मॉड्यूल में हैंडशेक निष्क्रियता टाइमआउट

  4. MySQL आज दर्ज की गई तालिका से डेटा कैसे चुनें?

  5. पीडीओ गतिशील क्वेरी बिल्डिंग