LoginSignup
0
0

【MyBatis-Plus】テーブルに存在しないフィールドの処理

Posted at

はじめに

MyBatis-Plusはエンティティクラスのすべてのフィールドをテーブルの対応するカラムにマッピングするため、テーブルに存在しないフィールドがある場合はMyBatis Plusに無視される(生成されるSQL文に含まれない)ようにする必要がある。

解決方法

1. @TableField アノテーションを使用する

@TableField(exist = false) を付与して、このフィールドがテーブルに存在しないことを示す

Entity
@TableField(exist = false)
private String noColumn;

@TableField のドキュメント:

2. transient 修飾子を付ける

transient 修飾子を付けたフィールドはシリアル化されない

Entity
private transient String noColumn;

3. static 修飾子を付ける

static 修飾子を付けるとクラス全体で共有されるため、あまり使用されない。
また、static変数はgetter, setterを手動で設定する必要がある。

Entity
private static String noColumn;

public static String getNoColumn() {
    return noColumn;
}

public static void setNoColumn(String noColumn) {
    User.noColumn= noColumn;
}

参考ページ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0