2009-08-24 13 views
11

Tengo una entidad que se declara más o menos así:Obtener nombre de tabla de hibernación anotada de POJO

@Entity 
@Table(name = "myUserTable") 
public class User implements Serializable { ... } 

estoy haciendo una clase DAO genérico, y al hacerlo, me gustaría recuperar el nombre de "myUserTable" . ¿Hay alguna manera de que pueda alcanzar este nombre?

Respuesta

22

bastante fácil usando reflexión general:

import javax.persistence.Table; 

..... 

Class<?> c = User.class; 
Table table = c.getAnnotation(Table.class); 
String tableName = table.name(); 
+0

Hmm .... No pude encontrar el nombre() en org.hibernate.annotations.Table. ¿Estoy mirando la clase de mesa correcta? – niklassaers

+0

No, estás viendo las extensiones de propiedad de Hibernate para JPA. Necesitas javax.persistence.Table. – skaffman

Cuestiones relacionadas