在我的 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/