mybatis-plus idプライマリキー生成ピット
1807 ワード
mybatis-plus idプライマリキー生成ピット簡単な説明 エラー ソリューション1 1. idフィールドタイプ の変更 2. データベースidフィールドタイプ の調整ソリューション2 注釈 を追加その他`type`タイプ紹介 簡単な説明
デフォルトでは、長い数字の文字列が生成されます(符号化によってはアルファベットで終わる可能性があります).
エラー
大体id
ソリューション1
1.idフィールドタイプの変更
idフィールドタイプを
2.データベースidフィールドタイプの調整
データベースの
ソリューション2
注記の追加
その他の
mybatis-plus
は、パッケージするかどうかにかかわらず、id
をエンティティオブジェクトに自動的に挿入するため、予期せぬ事態が発生することがあります.デフォルトでは、長い数字の文字列が生成されます(符号化によってはアルファベットで終わる可能性があります).
エラー
ested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.xxx' with value '1110423703487479810' Cause: java.lang.IllegalArgumentException: java.lang.ClassCastException@14041406
大体id
1110423703487479810
が自動的に生成されるため、integer
に入れられないソリューション1
1.idフィールドタイプの変更
idフィールドタイプを
long
に変更することで、生成するidに十分なビット数を入れることが保証される.2.データベースidフィールドタイプの調整
データベースの
id
フィールドの長さ(20ビットに変更)ソリューション2
id
自増を使用するには、mybatis-plus
というid
で生成された機能をオフにする必要があります.注記の追加
id
フィールドに次の注記を追加すればよい @TableId(value = "id",type = IdType.AUTO)
その他の
type
タイプの紹介AUTO
:AUTO(0,「データベースID自増」),INPUT
:INPUT(1,「ユーザ入力ID」,ID_WORKER
: ID_WORKER(2,「グローバル一意ID」),UUID
:UUID(3,「グローバル一意ID」)NONE
:NONE(4、「このタイプはプライマリ・キー・タイプが設定されていない」)、ID_WORKER_STR
: ID_WORKER_STR(5,「文字列グローバル一意ID」);