Cómo eliminar la propiedad de recursos de asignación de hibernate.cfg archivo
-
24-10-2019 - |
Pregunta
Actualmente estoy trabajando en un proyecto. En mi proyecto hay muchos archivos de entidad/pojo. Actualmente estoy usando sencillo hibernate.cfg.xml para agregar todos los archivos de asignación a la configuración como:-
<mapping resource="xml/ClassRoom.hbm.xml"/>
<mapping resource="xml/Teacher.hbm.xml"/>
<mapping resource="xml/Student.hbm.xml"/>
Tengo una gran cantidad de archivos de asignación, lo que hace que mi archivo hibernate.cfg se vea un poco desordenado, por lo que hay alguna forma de no necesitar agregar lo anterior al archivo hibernate.cfg. más bien puede haber otra forma de lograr lo mismo ... por favor ayuda
Solución
Podrías crear un Configuration
programáticamente y usar Configuration#addClass(Class)
Para especificar la clase asignada (y Hibernate cargará el archivo de asignación para usted). Del Javadoc:
Lea una asignación como recurso de aplicación utilizando la convención que llamó una clase
foo.bar.Foo
está asignado por un archivofoo/bar/Foo.hbm.xml
que puede resolverse como un recurso de clases.
Entonces podrías hacer algo como esto:
Configuration cfg = new Configuration()
.addClass(org.hibernate.auction.Item.class)
.addClass(org.hibernate.auction.Bid.class)
...
.configure();
SessionFactory factory = cfg.buildSessionFactory();
Ver también
Otros consejos
La clase de configuración de Hibernate en sí no proporciona un método de Magic AddallEntities. Pero puedes usar AnotationsessionFactoryBean setpackagestoscan método. Tenga en cuenta que simplemente funciona cuando se usa la clase de entidad anotada y es una clase dependiente de la primavera
AnnotationSessionFactoryBean sessionFactory = new AnnotationSessionFactoryBean();
sessionFactory.setDataSource(<javax.sql.DataSource> implementation goes here)
sessionFactory.setPackagesToScan(new String [] {"xml"});
Sí, usar anotaciones.
@Entity
public class Teacher {
@Column
private String name;
@Column
private String address;
etc..
}
Hibernate detectará automáticamente clases que se anotan con @Entity
.
El método de configuración addDirectory ()/addJAR () utiliza todos los archivos .hbm.xml que se encuentran dentro de un directorio/archivo jar especificado. necesitará codificar esa ubicación, pero solo esa