Hibernate注解元数据



是否有办法获得关于Hibernate注释的元数据?

我需要关于关联的信息,如果它们可空或不。

现在我只能查询ClassMetadata

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

我可以遍历属性并检查它是否为

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

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

EntityType明显具有isNullable功能而不具有CollectionType功能

所以我考虑使用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;
 }

这是可能的吗,或者也许有另一种方法来实现我想要的。

JS

我不确定我理解你的问题,但如果你想看看是否有注释存在,你可以这样做(使用自省):

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

根据定义,集合不能为空。n个元素的集合意味着有n个指定类型的实体具有对该实体的外键引用。

所以你唯一可以检查空性的关系是*ToOne-relations (OneToOne, ManyToOne)。

相关内容

  • 没有找到相关文章

最新更新