2011-08-12 3 views
2

Y a-t-il un moyen de trouver MetaData à propos de mes annotations Hibernate?Hibernate Annotations Métadonnées

J'ai besoin d'informations sur Les associations si elles sont annulable ou non.

En ce moment, je ne peux interroger pour ClassMetadata

http://docs.jboss.org/hibernate/core/3.5/javadocs/org/hibernate/metadata/ClassMetadata.html

Là où je peux courir à travers les propriétés et vérifier si elle est un

EntityType
http://docs.jboss.org/hibernate/core/3.5/javadocs/org/hibernate/type/EntityType.html

ou CollectionType
http://docs.jboss.org/hibernate/core/3.5/javadocs/org/hibernate/type/CollectionType.html

EntityType a apparemment une fonction isNullable mais pas CollectionType

Je pensé à utiliser les informations Annotation

@GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "seizureI18n")) 
@Id 
@GeneratedValue(generator = "generator") 
@Column(name = "id", unique = true, nullable = false) 
public Integer getId() { 
    return this.id; 
} 

Est-ce possible ou peut-être une autre façon d'obtenir ce que je veux.

Cordialement

JS

Répondre

2

Je ne suis pas sûr que je comprends votre question, mais si vous voulez voir si une annotation est présent que vous pourriez faire comme ceci (en utilisant l'introspection):

Annotation[] tabAnnotation = A.class.getField("fieldB").getDeclaredAnnotations(); 
for(Annotation annotation : tabAnnotation) 
    if(annotation instanceof Entity) 
     System.out.println(((Entity)annotation).isNullable()); 
+0

Merci c'était ce que je cherchais –

2

Une collection ne peut pas être annulable, par définition. Une collection de n éléments signifie qu'il y a n entités du type spécifié qui ont une référence de clé étrangère à cette entité. Cela n'implique rien dans la table de cette entité. Les seules relations que vous pouvez vérifier pour la nullabilité sont * ToOne-relations (OneToOne, ManyToOne).

+0

la valeur par défaut pour l'annotation '' nullable' 'est' 'vrai'' au moins selon ** 5.1.4.1.4. Déclaration des attributs de colonne ** de http://docs.jboss.org/hibernate/core/3.6/reference/fr-FR/html/mapping.html#mapping-declaration-properties –

Questions connexes