2010-06-11 15 views
7

Hazırda bekletme ek açıklamaları kullanıyorum. POJO nesnesine yöntemler nasıl eklenir? Örneğin, veritabanı ile ilişkili "getChildNodes" yöntemim var, ama aynı zamanda "getAllChildNodes" özyinelemeli yöntemi de eklemek istiyorum. "Org.hibernate.PropertyNotFoundException: Bunu yaparken sınıftaki özellik ilerlemesi için bir belirteç bulamadık" istisnası var.Java, Hazırda bekletme ek açıklamaları, POJO nesnesine yöntemler nasıl eklenir?

+0

kodunuzu görüntüleyin. – Bozho

cevap

9

o zaman varlık yapısını tanımlayan iki yolu vardır

+0

Kafam karıştı. Örneğin getAllChildNodes() veya publish() gibi ek işlevsellik eklemiyor, artık bir POJO yapmıyor mu? Bu nedenle, POJO'lar olmak zorunda olan hazırda duran nesnelerin tasarım prensibini ihlal ediyor ve bu nedenle "kötü" mü? Ama neden kötü olsun ki? Bunu yapmak istiyorum ama doğru yol olup olmadığından emin değilim. – pete

-1

.java dosyasını açın ve getAllChildNodes() adlı bir yöntem yazın.

Hazırda bekletme kodu sizin için yazmaz, veritabanınızdaki alanları kodunuza eşler. Bu kadar. Alanlarınızda/model sınıflarınızda, özellikleriniz için normal alıcılar ve ayarlayıcıların yanı sıra fazladan bir mantığa sahip olmak istiyorsanız, bunları kendiniz eklemeniz gerekir. Ben bu yorumlamak ise

1

getAllChildNodes() yöntemine @Transient ek açıklama kullanmak gerekir "nasıl sebat ilgili DEĞİLDİR bir yöntem eklerim" . senin varlığın alıcı yöntemleri üzerine ek açıklamaları kullanarak örnek sizin varlığın değişkenleri veya

  • üzerinde

    • kullanarak ek açıklamalar

    alıcı yöntemleri ek açıklamaları kullanarak, hazırda varsayar her getXXX (ve: XXX boolean türleri için) kalıcı bir özelliğin tanımını temsil eder. Ve bu durumda, belirli bir alıcı, durumunuzda olduğu gibi herhangi bir ek açıklama içermiyorsa bile geçerlidir. Hazırda bekletme ayrıca, her kalıcı özellik için uygun bir ayarlama yöntemi bulmayı da beklemektedir. Üste | Ve senin durumunda, bu eksik olan ve istisna neden olur.

    Bu sorunu, özel alıcıyı @Transient olarak bildirerek bu alıcıya kalıcı bir özellik göstermediğini bildiren bu sorunu çözebilirsiniz. Başka bir yol, varlığın örnek değişkenler üzerindeki ek açıklamaları kullanmasına dönüştürülmesidir. İkincisi kişisel tercihim olurdu.

  • İlgili konular