클래스의 멤버 변수의 주석을 알고 싶습니다. BeanInfo beanInfo = Introspector.getBeanInfo(User.class)
을 사용하여 클래스를 검사하고 BeanInfo.getPropertyDescriptors()
을 사용하여 특정 속성을 찾고 클래스 type = propertyDescriptor.getPropertyType()
을 사용하여 속성의 클래스를 가져옵니다.멤버 변수의 주석을 얻는 방법은 무엇입니까?
하지만 멤버 변수에 주석을 추가하는 방법을 모르겠습니까?
나는 과 type.getDeclaredAnnotations()
을 시도했지만 둘 다 내가 원한 것이 아니라 클래스의 주석을 반환합니다. 예를 들어 :
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
{
...
}
나는 주소의 주석을 얻으려면 : @Column 클래스가 아닌 주소의 주석 (@Entity, @Table, @Cache). 그것을 성취하는 방법? 감사.
public void getAnnotations(Class clazz){
for(Field field : clazz.getDeclaredFields()){
Class type = field.getType();
String name = field.getName();
field.getDeclaredAnnotations(); //do something to these
}
}
여기 경우 것 같다 당신이, DB 객체를 복사하면 그것은 유용 할 수 있습니다 @Bozho 내 방법. 복사본이 다른 DB 엔티티가되어야하는 경우 동일한 ID를 가질 수 없습니다. 일반 복사 알고리즘은 주석 '@Id'가있는 항목을 제외 할 수 있습니다. – Hok