将aws java sdk添加到pom时,@JsonIgnore不';不行。为什么?
将aws java sdk添加到pom.xml中时,我现有的将aws java sdk添加到pom时,@JsonIgnore不';不行。为什么?,java,json,hibernate,jackson,aws-sdk,Java,Json,Hibernate,Jackson,Aws Sdk,将aws java sdk添加到pom.xml中时,我现有的@JsonIgnore注释不再起作用。但是当我从pom文件中删除AmazonSDK(aws java SDK)时,JsonIgnore工作得很好。情况很奇怪,我不知道原因 Jackson版本是1.9.13,Amazon SDK版本是1.6.12 我需要使用@JsonIgnore来防止在Hibernate模型上循环引用。我还需要使用AmazonSDK来处理AmazonS3 任何帮助都将不胜感激 编辑: 等级车{ 私有字符串标题; @杰索尼
@JsonIgnore
注释不再起作用。但是当我从pom文件中删除AmazonSDK(aws java SDK)时,JsonIgnore工作得很好。情况很奇怪,我不知道原因
Jackson版本是1.9.13
,Amazon SDK版本是1.6.12
我需要使用@JsonIgnore来防止在Hibernate模型上循环引用。我还需要使用AmazonSDK来处理AmazonS3
任何帮助都将不胜感激
编辑:
等级车{
私有字符串标题;
@杰索尼奥雷
私有模型;
…
}
类模型{
@许多酮
@JoinColumn(name=“manufacturer\u id”,referencedColumnName=“id”)
私营制造商;
…
}
类制造商{
@OneToMany(mappedBy=“制造商”)
@杰索尼奥雷
私有列表模型;
…
}
@Matt B是对的。。。AWS SDK依赖于jackson注释
、jackson数据绑定
和jackson核心
。在Jackson v1.9之后,@JsonIgnore
的使用发生了变化:你能详细解释一下“注释不再起作用”的意思吗?你是说它不能编译吗?aws java sdk是否引入了影响类路径的其他依赖项?尝试运行mvn dependency:tree
@matt/api/cars returns cars list。使用JsonIgnore注释时,没有循环引用(因为汽车->车型->制造商->车型)。将AmazonAWS库添加到pom文件后,会发生循环引用错误。没有编译错误。顺便说一句,我通过将org.codehaus.jackson
更改为com.fasterxml.jackson.core
解决了这个问题。现在,jackson core的版本是2.3.0。我只是想知道发生了什么事。听起来好像aws java sdk正在加载Jackson库的2.3.0版——它的所有类都有包更改——而您使用的是1.9.0。确保API配置为完全使用Jackson ObjectMapper和您希望它使用的版本,而不仅仅是查找类路径上的内容,这可能是一个好主意。
Class Car {
private String title;
@JsonIgnore
private Model model;
…
}
Class Model {
@ManyToOne
@JoinColumn(name="manufacturer_id", referencedColumnName="id")
private Manufacturer manufacturer;
…
}
Class Manufacturer {
@OneToMany(mappedBy = "manufacturer")
@JsonIgnore
private List<Model> models;
…
}