私は、List of GameFieldクラスを含むSaveクラスを持つプロジェクトを作っています。 "Save"をDBに保存する(Hibernateを使用)。Json @JsonIgnore。どのように深く無視するのですか?
私はJSONを使用していますが、かなりうまくいきますが、GameFieldのすべてのフィールドを解析しているため、Json Stringは約600文字になります。 Beacuseが長すぎるため、Stringのサイズが大きすぎると言うorg.hibernate.exception.DataExceptionが発生しています。
大きな文字列を適切に格納するためにデータベース内に使用可能な領域を増やそうとしていましたが、うまく機能しませんでした。
私は@JsonIgnoreと@JsonIgnorePropertiesというアノテーションがあるため、Jsonがいくつかのフィールドを解析するのを止めることができました。それはGameFieldのためではなくSaveクラスのためだけに機能しました。
Jsonが私が必要とするフィールドを解析するのを防ぐことはできますか?ここで
保存クラスです:
public class Save {
private List<GameField> fields;
// getters setters , etc.
}
ゲーム・フィールド:コードを解析する
public class GameField {
@JsonIgnore
private boolean isSet;
private char fieldSign;
@JsonIgnore
private final int numberInArray;
}
フラグメント:
public String getEncodedSaveInString(Save save) throws JsonProcessingException {
mapper = new ObjectMapper();
return mapper.writeValueAsString(save);
}
Userクラスのワンピース
@Entity
public class User {
@Column(name = "Save")
private Save save;
}
解決策はありますか?
正常に動作しますか'@ JsonIgnoreProperties'です。 – Gregg
これを修正しました。私も@JsonIgnoreProperties({"isSet"、 "numberInArray"})で試していましたが、影響はありません。 –
私はとてもうまく動作する非常に似たコードを持っています。 com.fasterxml.jackson.annotation'の注釈を使用していますか? – Gregg