Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara memetakan tipe Enum di mybatis menggunakan typeHandler saat disisipkan

Hari kerja ada seperti ini

    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....

Solusi yang benar tentu saja menambahkan enum di tabel hari kerja ... dan itu akan banyak menggunakan kembali pengambilan database yang saya yakini.

    <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>   

Dan sekarang hapus tabel daytaypeDan tambahkan enum langsung di tabel hari kerja.

    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. Perbaiki kesalahan sintaks mysql saat membuat pengguna

  2. Codeigniter db->update() VS MySQL native UPDATE Baris yang terpengaruh:0

  3. Kesalahan MySQL saat mencoba memotong tabel

  4. Pilihan tertimbang acak dari suatu acara

  5. Jalankan kueri MySQL pada mesin jarak jauh melalui ssh di baris perintah