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

डालने पर टाइपहैंडलर का उपयोग करके mybatis में Enum प्रकार को कैसे मैप करें

कार्यदिवस इस प्रकार मौजूद है

    public class Workday implements Serializable{
        private long idWorkDay;
        private Date start;
        private Date end;
        private List<Workbreak> workBreaks;
        private DAY_TYPE DAY_TYPE;
        private long workweekID;
        getter setter....

सही समाधान निश्चित रूप से कार्यदिवस तालिका में एनम जोड़ने के लिए है ... और यह डेटाबेस को फिर से उपयोग करेगा जो मुझे विश्वास है।

    <insert id="insert" parameterType="workday" useGeneratedKeys="true" keyProperty="idWorkDay">
      INSERT INTO workday 
        ( start , end , workweekID , DAY_TYPE )
      VALUES (
        #{start},
        #{end},
        #{workweekID},
        #{DAY_TYPE, typeHandler=org.apache.ibatis.type.EnumTypeHandler}
      )
        <selectKey keyProperty="idWorkDay" resultType="long" order="AFTER">
            SELECT LAST_INSERT_ID();
        </selectKey>
    </insert>   

और अब डे-टेप टेबल को डिलीट करें और इसके बजाय सीधे वर्कडे टेबल में एनम जोड़ें।

    CREATE TABLE `workday` (
      `idworkday` int(11) NOT NULL AUTO_INCREMENT,
      `start` time DEFAULT '08:00:00',
      `end` time DEFAULT '17:00:00',
      `workweekID` int(11) DEFAULT NULL,
      `DAY_TYPE` enum('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY') DEFAULT NULL,
      PRIMARY KEY (`idworkday`),
      KEY `fk_workweek_workweekID` (`workweekID`),
      CONSTRAINT `fk_workweek_workweekID` FOREIGN KEY (`workweekID`) REFERENCES `workweek` (`idworkweek`) ON DELETE CASCADE ON UPDATE NO ACTION
    ) ENGINE=InnoDB AUTO_INCREMENT=139 DEFAULT CHARSET=utf8 ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqlworkbench डेटाबेस निर्यात करने पर संस्करण त्रुटि दे रहा है

  2. mysql में अपलोड होने पर एक्सेल से तारीख बदल जाती है

  3. Laravel बूटस्ट्रैप कैश कॉन्फ़िग फ़ाइल को कैसे साफ़ करें?

  4. पायथन, mysql.connector त्रुटि:से प्राप्त करने के लिए कोई परिणाम सेट नहीं; cgitb कार्य करने के लिए पारित किया जा रहा सही मान दिखाता है

  5. MySQL संग्रहीत कार्यविधि के कारण `कमांड सिंक से बाहर`