java - 为 Hibernate 域对象创建元表

标签 java hibernate spring annotations entitymanager

在我的 Hibernate + Spring 应用程序中,我有几个基于注释的域对象。我想遍历所有这些并创建带有所有定义的元表。该元表应如下所示:

Entity Name |    Field Name |    Field Type |    Field Size|    etc.

例如,

@Entity
public class User {

@Column(name = "username", length = 255)
private String username;

@Column(name = "password", length = 255)
private String password;
}

应该创建两条记录

Entity Name |    Field Name |    Field Type |    Field Size|
User        |    username   |     String    |     255      |
User        |    password   |     String    |     255      |

如何做到这一点?

附注我们使用 Spring 的 LocalContainerEntityManagerFactoryBean 进行数据访问

最佳答案

您可以使用 SessionFactory 的 getAllClassMetadata方法,这将为您提供所需的一切,除了字段大小(我在 javadoc 中没有找到)。但即便如此,通过检查与类的每个持久属性相对应的类字段上设置的 @Column 注释也应该相对容易做到。

从 ENtityManager 中,您可以调用 getDelegate 来访问 Hibernate session ,然后调用 getSessionFactory() 来访问 session 工厂。

关于java - 为 Hibernate 域对象创建元表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5432360/

相关文章:

java - 如何在 Hibernate ORM 中将 "lo"别名为 "oid"?

java - 启动时出现Grails应用程序错误

java - Spring Webflow 中的数据绑定(bind)问题

java - 如何计算一个方法被调用的次数?

Javafx 应用程序不会运行,只是构建并且构建失败

java - 在 Java 中不使用 XSLT 将 XML 属性转换为标签(节点)

Spring 数据是否需要 hibernate

java - EntityManager (Hibernate + MySQL) 在更新时截断空白处的字符串

java - Android Nougat、Oreo - 如何将长按操作添加到快速切换?

spring - jsp页面中使用spring bean的教程