Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将aws java sdk添加到pom时,@JsonIgnore不';不行。为什么?_Java_Json_Hibernate_Jackson_Aws Sdk - Fatal编程技术网

将aws java sdk添加到pom时,@JsonIgnore不';不行。为什么?

将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 任何帮助都将不胜感激 编辑: 等级车{ 私有字符串标题; @杰索尼

将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

任何帮助都将不胜感激

编辑:

等级车{
私有字符串标题;
@杰索尼奥雷
私有模型;
…
}
类模型{
@许多酮
@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;
    …
}