Bir sınıfın bazı üye değişkeninin açıklamalarını bilmek istiyorum, bir sınıfı anlamak için BeanInfo beanInfo = Introspector.getBeanInfo(User.class)
kullanın ve belirli bir özelliği bulmak için BeanInfo.getPropertyDescriptors()
kullanın ve tesisin Sınıfını almak için Sınıf type = propertyDescriptor.getPropertyType()
'u kullanın.Üye değişkeni ek açıklamaları nasıl alınır?
Ancak üye değişkenine ek açıklamaların nasıl ekleneceğini bilmiyorum?
type.getAnnotations()
ve type.getDeclaredAnnotations()
'u denedim, ancak her ikisi de istediğim gibi değil, Sınıf'ın ek açıklamalarını döndürdü. Örneğin:
class User
{
@Id
private Long id;
@Column(name="ADDRESS_ID")
private Address address;
// getters , setters
}
@Entity
@Table(name = "Address")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
class Address
{
...
}
Ben adresin ek açıklama almak istiyorum: @column değil sınıf Adres ek açıklama (@Entity, @ tablo, @Cache). Nasıl elde edilir? Teşekkürler.
public void getAnnotations(Class clazz){
for(Field field : clazz.getDeclaredFields()){
Class type = field.getType();
String name = field.getName();
field.getDeclaredAnnotations(); //do something to these
}
}
burada böyle görünüyor gibi, DB nesneleri kopyalamak varsa faydalı olabilir @Bozho Benim yöntemim. Farklı bir DB öğesi olması gerekiyorsa, kopya aynı kimliğe sahip olamaz. Genel bir kopya algoritması, Annotation '@Id' ile her şeyi hariç tutabilir. – Hok