2014-03-06 58 views
0

aws-java-sdk添加到pom.xml時,我現有的@JsonIgnore註釋不再有效。但是當我從pom文件中刪除Amazon SDK(aws-java-sdk)時,JsonIgnore運行良好。這是很奇怪的情況,我不知道原因。將aws-java-sdk添加到pom時,@JsonIgnore不起作用。爲什麼?

傑克遜版本爲1.9.13,亞馬遜SDK版本爲1.6.12

我需要使用@JsonIgnore來防止Hibernate模型上的循環引用。我還需要使用Amazon SDK來使用Amazon S3。

任何幫助,將不勝感激。

編輯:

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; 
    … 
} 
+0

您可以詳細說明「註釋不再適用」的含義嗎?你的意思是它不能編譯? aws-java-sdk是否牽涉影響你的類路徑的其他依賴項?嘗試運行'mvn dependency:tree' –

+0

@matt **/api/cars **返回汽車列表。有了JsonIgnore註釋,沒有循環引用(因爲汽車 - >模型 - >製造商 - >模型)。將Amazon AWS庫添加到pom文件後,會發生循環引用錯誤。沒有編譯錯誤。 順便說一句,我已經通過將'org.codehaus.jackson'更改爲'com.fasterxml.jackson.core'解決了這個問題。現在'jackson-core'版本是2.3.0。我只是想知道發生了什麼。 – azizunsal

+2

聽起來像aws-java-sdk正在加載Jackson庫的2.3.0版 - 它對所有類都有一個包更改 - 並且您使用的是1.9.0。可能是一個好主意,以確保您的API被配置爲完全使用Jackson ObjectMapper和您想要的版本,而不僅僅是找到類路徑中的任何內容。 –

回答

相關問題