mybatisプラグインtkについてmybatisが生成した動的sql文フィールドに``を付けない問題

3377 ワード

問題の説明
  • 今日はtkを使っています.mybatisプラグインの場合、オブジェクト用mapperをクエリーします.selectByPrimaryKey(id)メソッドでエラーが発生しました.エラーの原因はmybatisがクエリー文を生成するときにテーブル名とカラム名に``記号を付けていないためです.ちょうどそのテーブルのカラムにはoptionというフィールドがあります.ちょうどmysqlのキーワードです.``記号を付けないと間違いに違いありません.

  • の原因となる
  • 理由はmybatis-generatorを使用する場合に生成されるmodelクラスに追加されたフィールド注釈が
  • 列明を示さないためである.
    @Table(name = "activity_question")
    public class ActivityQuestion {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        /**
         *     
         */
        private String question;
    
        /**
         *     
         */
        private String options;
    
        /**
         *   
         */
        private String answer;
    
        private Byte expired;
    
        /**
         *     
         */
        private Date createTime;
    
        /**
         *     
         */
        private Date updateTime;
  • は以下のように修正すればよい
  • @Table(name = "`activity_question`")
    public class ActivityQuestion {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        /**
         *     
         */
        @Column(name = "`question`")
        private String question;
    
        /**
         *     
         */
        @Column(name = "`options`")
        private String options;
    
        /**
         *   
         */
        @Column(name = "`answer`")
        private String answer;
    
        @Column(name = "`expired`")
        private Byte expired;
    
        /**
         *     
         */
        @Column(name = "`create_time`")
        private Date createTime;
    
        /**
         *     
         */
        @Column(name = "`update_time`")
        private Date updateTime;