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

MySQL डेटाटाइम सटीक (जोडा-टाइम, हाइबरनेट, org.jadira.usertype, hbm2ddl)

मुझे एक और समाधान मिला है जो आपके @Column . में MySQL कॉलम डेफिनिशन स्निपेट को हार्डकोड नहीं करने देता है एनोटेशन। org.hibernate.dialect.MySQLDialect को ओवरराइड करके अपनी खुद की हाइबरनेट बोली परिभाषित करें :

package org.yourproject;

import java.sql.Types;
import org.hibernate.dialect.MySQL5Dialect;

public class MySQL564PlusDialect extends MySQL5Dialect {
   public MySQL564PlusDialect() {
      super();
      registerColumnType( Types.TIMESTAMP, 6, "datetime($l)" );
   }
}

और इसे हाइबरनेट संपत्ति के रूप में निर्दिष्ट करें hibernate.dialect=org.yourproject.MySQL564PlusDialect (जिस बोली को आप विस्तारित करना चाहते हैं वह भिन्न हो सकती है, जैसे org.hibernate.dialect.MySQL5InnoDBDialect इसके बजाय)।

अब आप अपने DATETIME . की सटीकता को समायोजित कर सकते हैं @Column . के भीतर से length . का उपयोग करके एनोटेशन विशेषता:

@Basic(optional=false)
@Column(name="moment", length=3)
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
public DateTime getMoment() {
 ...

जो DATETIME(3) produce उत्पन्न करेगा कॉलम परिभाषा का अर्थ मिलीसेकंड सटीक है। यदि आपको सरल DATETIME की आवश्यकता है (कोई भिन्नात्मक सेकंड नहीं), बस लंबाई निर्दिष्ट न करें। आप length . के मान का उपयोग कर सकते हैं 6 तक जिसका मतलब माइक्रोसेकंड सटीक होगा।

यदि आप उपरोक्त बोली से भिन्न बोली का उपयोग करते हैं (उदाहरण के लिए मानक org.hibernate.dialect.MySQLDialect या शायद कोई अन्य डेटाबेस), जो आपके कोड को नहीं तोड़ेगा:length @Column . पर विशेषता अनदेखा कर दिया जाएगा।

पी.एस. precision . का फायदा उठाना ज्यादा समझदारी भरा होगा @Column . की विशेषता length . के बजाय , लेकिन "datetime($l)" . का सरल प्रतिस्थापन "datetime($p)" . के साथ पैटर्न मेरी अपनी बोली कार्यान्वयन में से एक काम नहीं करता है।



  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. JDBC कनेक्शन टाइमआउट फिर से कनेक्ट नहीं हो सकता

  3. मेरे VB.NET 2008 प्रोजेक्ट से MySQL डेटाबेस तक पहुंचना

  4. PhpMyAdmin का उपयोग करके डेटाबेस को कैसे निर्यात करें

  5. AJAX-PHP-MySQL जनरेट की गई तालिका के लिए डायनामिक डिव टैग बनाना