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

¿Fue útil?

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 archivo foo/bar/Foo.hbm.xmlque 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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top