0

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

怎么可能做到这一点?

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

4

1 回答 1

1

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

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

于 2011-03-25T12:58:27.817 回答