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;
…
}
您可以詳細說明「註釋不再適用」的含義嗎?你的意思是它不能編譯? aws-java-sdk是否牽涉影響你的類路徑的其他依賴項?嘗試運行'mvn dependency:tree' –
@matt **/api/cars **返回汽車列表。有了JsonIgnore註釋,沒有循環引用(因爲汽車 - >模型 - >製造商 - >模型)。將Amazon AWS庫添加到pom文件後,會發生循環引用錯誤。沒有編譯錯誤。 順便說一句,我已經通過將'org.codehaus.jackson'更改爲'com.fasterxml.jackson.core'解決了這個問題。現在'jackson-core'版本是2.3.0。我只是想知道發生了什麼。 – azizunsal
聽起來像aws-java-sdk正在加載Jackson庫的2.3.0版 - 它對所有類都有一個包更改 - 並且您使用的是1.9.0。可能是一個好主意,以確保您的API被配置爲完全使用Jackson ObjectMapper和您想要的版本,而不僅僅是找到類路徑中的任何內容。 –