Je veux connaître les annotations d'une variable membre d'une classe, j'utilise BeanInfo beanInfo = Introspector.getBeanInfo(User.class)
pour introspecter une classe et utiliser BeanInfo.getPropertyDescriptors()
pour trouver une propriété spécifique, et utiliser la classe type = propertyDescriptor.getPropertyType()
pour obtenir la classe de la propriété.Comment obtenir des annotations d'une variable membre?
Mais je ne sais pas comment ajouter les annotations à la variable membre?
J'ai essayé type.getAnnotations()
et type.getDeclaredAnnotations()
, mais les deux renvoient les annotations de la classe, pas ce que je veux. Par exemple:
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
{
...
}
Je veux obtenir l'annotation de l'adresse: les annotations de @Column, pas de classe Adresse (@Entity, @Table, @Cache). Comment l'atteindre? Merci.
@Bozho Il pourrait être utile si vous copiez des objets DB, comme cela semble être le cas ici. La copie ne peut pas avoir le même ID, si elle est supposée devenir une entité DB différente. Un algorithme de copie générique pourrait exclure n'importe quoi avec Annotation '@Id'. – Hok