所以,我正在创建一个具有类Save的项目,其中包含GameField类的List。保存"保存"到DB(使用Hibernate)。
我使用JSON并且它工作得很好,但它解析了GameField中的所有字段,这使得Json String长约600个字符。因为它太长了,我得到的是org.hibernate.exception.DataException,它表示String的大小太大了。
我试图增加数据库中的可用空间以正确存储那个大字符串,但它没有用。
所以我找到了@JsonIgnore和@JsonIgnoreProperties注释来阻止Json解析几个字段。它只适用于Save类而不适用于GameField。
是否可以阻止Json解析我想要的任何字段?
这是Save class:
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);
}
用户类
@Entity
public class User {
@Column(name = "Save")
private Save save;
}
有解决方案吗?
答案 0 :(得分:0)
好的,所以我找到了解决方案。我唯一需要做的就是将@JsonIgnore注释放在字段设置器上方。将它置于字段上方本身无法正常工作
代码的工作示例:
private Foo foo;
@JsonIgnore
public void setfoo(Foo newFoo){ this.foo = newFoo;}
工作正常:)