Son birkaç gün içinde, MOXy JAXB kullanarak bir Hazırda Bekleme modelinin XML marshalling/unmarshalling'i için destek yapmaya çalıştım. Bunu yapmaya çalışıyorum, hazırda bekletme nesnelerini kullanarak bir sorunla karşılaştım. gibi bir şey düşünün:(moxy) jaxb klikleme ve hazırda bekleme vekil nesneleri
@XmlAccessorType(XmlAccessType.NONE)
public class User {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "address")
@XmlElement
public Address getAddress() {
return address;
}
}
@XmlAccessorType(XmlAccessType.NONE)
@XmlSeeAlso(CoolAddress.class)
public abstract class Address {
// Something
}
@XmlAccessorType(XmlAccessType.NONE)
public class CoolAddress extends Address {
@XmlElement
public String getSomething() {
return something;
}
}
Benim sorunum şu hazırda GetAddress arayarak elde adresinin bir vekil nesnesini başlatır geçerli:
public class User {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "address")
public Address getAddress() {
return address;
}
}
public abstract class Address {
// Something
}
public class CoolAddress extends Address {
public String getSomething() {
return something;
}
}
aşağıdaki şekilde Moxy JAXB kullanarak bu kodu eşleştirmek için çalıştık() Bir Kullanıcıda. Daha sonra, JAXB nesneyi mareşal etmeye çalıştığında, aslında CoolAddress'in marşalize edilmemesiyle sonuçlanan, CoolShield'ın marshal yapmaya çalıştığı bir CoolAddress olduğunu öğrenemez. Beni başkasıyla Sıralanmış nesne yerine izin JAXB bir geri almak
- Bir şekilde:
Ben googled var/aşağıdaki olası çözümleri düşündü. Bu, gerçek nesneyi proxy'den almamı sağlar.
- Modeldeki tüm nesnelere dokunarak, nesnelere gerçek nesneleri getirmeye hazır hale getirin. Geçici olmayan tüm geçici özelliklerle manuel olarak koşmaktan daha akıllıca bir yol bulamadım, bu da sıkıcı bir sıkıcı.
- Oturumda istekli getirme kullanmak için hazırda bekletme modunu ayarlayın Modelleri sıraya diziyorum.
Alternatif öneriler arıyorum veya yukarıdaki önerilerden birinin uygulanmasının mümkün olup olmadığı (ve kolay). Herhangi bir yardım takdir edilir :).
'CoolAddress' 'Adresi' uzatıyor mu? –
Evet, pardon. Bunu yazmayı unuttum. –