1. 問題の説明
最近、システムの開発過程で問題が見つかりました。データベース内のデータテーブルのフィールド名はすべて大文字であり、Java エンティティクラスの属性も大文字ですが、先頭に戻すと、最後に、すべての属性名が変更され、小文字になりました。
情報を参考にして問題が解決したので、今後二度とピットを踏まないように記録しておきます。
- データベースフィールドのフィールド名は次のように大文字です。
ID | 名前 |
---|---|
1 | 少し赤 |
2 | シャオ・ミン |
- Java エンティティ クラスの属性も次のように大文字です。
public class Person {
private Integer ID;
private String NAME;
// Getter and Setter
}
- フロントエンドは次のように小文字を受け取ります。
{
"data": [
{
"id": 1,
"name": "小红"
},
{
"id": 2,
"name": "小明"
}
]
}
2. 理由
情報を調べたところ、これは Java の命名規則がキャメルケースの命名規則を使用しているためであることがわかりました。つまり、属性名の最初の単語が小文字で、後続の単語の最初の文字が大文字になります。
ただし、フロントエンドに戻るときは、通常は JSON 形式が使用され、JSON 内の属性名は大文字と小文字が区別されるため、属性名は小文字に変換されます。
プロパティ名をフロントエンドに返すときに大文字と小文字を保持したい場合は、 Jackson ライブラリの@JsonProperty注釈を使用してプロパティ名を指定できます。
3. 解決策
エンティティクラスを次のように変更します
import com.fasterxml.jackson.annotation.JsonProperty;
public class Person {
@JsonProperty("ID")
private Integer ID;
@JsonProperty("NAME")
private String NAME;
// Getter and Setter
}