Создание метатаблицы для доменных объектов Hibernate - PullRequest
0 голосов
/ 25 марта 2011

В моем приложении 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 Мы используем SpringContainerEntityManagerFactoryBean для доступа к данным

1 Ответ

1 голос
/ 25 марта 2011

Вы можете использовать метод SessionFactory getAllClassMetadata , который даст вам все, что вам нужно, за исключением, возможно, размера поля (которого я не нашел в javadoc).Но даже это должно быть относительно легко сделать, проверив аннотацию @Column, установленную в поле класса, соответствующее каждому постоянному свойству класса.

Из ENtityManager вы можете вызвать getDelegate, чтобы получить доступ к сеансу Hibernate, а затем вызвать getSessionFactory (), чтобы получить доступ к фабрике сеансов.

...