Hibernate 注解元数据

发布于 2024-11-29 09:37:18 字数 1362 浏览 3 评论 0原文

有没有办法获取有关我的 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

所以我考虑使用注释信息

 @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

is there a way how I can get MetaData about my Hibernate Annotations?

I need information about Associations if they are nullable or not.

Right now I can only query for ClassMetadata

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

Where I can run through the properties and check if it is a

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

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

EntityType apparently has a isNullable function but not CollectionType

So I thought about using the Annotation information

 @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;
 }

Is this possible or maybe another way to achieve what I want.

Regards

JS

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眉目亦如画i 2024-12-06 09:37:18

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

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

I am not sure I understand your question, but if you want to see if an annotation is present you could do like this (using introspection):

Annotation[] tabAnnotation = A.class.getField( "fieldB" ).getDeclaredAnnotations( );
for( Annotation annotation : tabAnnotation )
   if( annotation instanceof Entity )
      System.out.println( ((Entity)annotation).isNullable() );
丿*梦醉红颜 2024-12-06 09:37:18

根据定义,集合不能为空。 n 个元素的集合意味着有 n 个指定类型的实体具有对该实体的外键引用。它并不暗示该实体表中的任何内容。

因此,您可以检查可空性的唯一关系是 *ToOne 关系(OneToOne、ManyToOne)。

A collection can't be nullable, by definition. A collection of n elements means there are n entities of the specified type that have a foreign key reference to this entity. It does not imply anything in this entity's table.

So the only relations you can check for nullability are *ToOne-relations (OneToOne, ManyToOne).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文