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

2つのレコードを作成する必要があります

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 に答える