comment faire pour désactiver le printemps de démarrage HibernateJpaAutoConfiguration

j'ai un printemps de démarrage du Projet Un qui dépendent de projet B.
le projet B en avoir .hbm.xml les ressources.
dans le projet, Un changement de configuration hibernate-je ajouter DatabaseConfiguration @Configuration pour modifier sessionFactory

@Bean
public LocalSessionFactoryBean sessionFactory() {
    LocalSessionFactoryBean sessionFactoryBean = new  LocalSessionFactoryBean();
    sessionFactoryBean.setDataSource(dataSource);
    sessionFactoryBean.setMappingLocations("classpath*:hibernate/**/*.hbm.xml");
    Properties hibernateProperties = new Properties();
    hibernateProperties.put("hibernate.dialect", HIBERNATE_DIALECT);
    hibernateProperties.put("hibernate.show_sql", HIBERNATE_SHOW_SQL);
    sessionFactoryBean.setHibernateProperties(hibernateProperties);

    return sessionFactoryBean;
}

construire.gradle ont cette dépendance HibernateJpaAutoConfiguration exécuter

compile 'org.springframework.boot:spring-boot-starter-data-jpa'

quand je lance l'application en gradle bootRun ou maven, spring-boot:run
démarrage de l'application et ok mais quand je lance en java-jar
je reçois exception

  caused by: org.springframework.beans.factory.BeanCreationException: 
  Error creating bean with name 'entityManagerFactory' defined in class path 
 resource    [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: 
 Invocation of init method failed; nested exception is org.hibernate.MappingException: 
An association from the table core_organization_Structure refers to an unmapped class: org.roshan.framework.domain.security.User

je ne sais pas pourquoi HibernateJpaAutoConfiguration commencer ???
après que je me change Application.java comme ça pour l'exclure mais encore une fois pas de travail .quand je copie des hbm de projectA .projet d'Une course et ok (avec java-jar)

@SpringBootApplication(exclude = {HibernateJpaAutoConfiguration.class })

mise à jour

après la recherche et de test ,j'ai trouvé le problème et de le résoudre .la cause du problème est l'utilisation d'hibernate-entitymanager dépendance dans le projet.printemps de démarrage de l'actionneur de le détecter et de l'auto config gestionnaire d'entités .après avoir supprimer cette dépendance désactiver HibernateJpaAutoConfiguration travail correct 😀

Ce qui vous fait penser que vous avez besoin d'une plaine SessionFactory pour être en mesure d'utiliser hbm.xml fichiers? Ces travaux parfaitement bien avec un gestionnaire d'entités (et sont généralement pris en tant que bien). Ainsi, au lieu de compliquer les choses simplement utiliser JPA. Je trouve étrange que vous n'obtenez pas une erreur avec bootRun (bien que je pense que je sais pourquoi, en tant que correctement configure un gestionnaire d'entités JPA et votre emballé pot échoue en raison de ne pas être en mesure de lire vos fichiers hbm).
j'ai beaucoup de hbm qui ne peuvent pas migrer vers jpa.pourquoi HibernateJpaAutoConfiguration exclut pas de travail ?
Veuillez lire attentivement. Le fait que vous avez un HBM fichier ne signifie pas que vous ne pouvez pas utiliser JPA. Soit annotations ou xml, il y a une correspondance pour votre entité, pour une Hibernate basée fournisseur JPA il peut utiliser les deux. Juste utiliser JPA juste utiliser le gestionnaire de l'entité et elle travaillera avec des HBM de fichier.
oui, je pense savoir ce que vous dites .je veux utiliser SessionFactory et ignorer HibernateJpaAutoConfiguration? comment puis-je le faire? . et je ne sais pas pourquoi " "java - jar" l'application ne sens hbm dans le bocal de la dépendance ?? mais lors de la copie hbm dans le projet un lancement de l'application ok ????
Puis exclure l'auto config. Mais pourquoi voulez-vous utiliser une session d'usine? Qu'est-ce que cela vous donne plus d'une EntityManager?

OriginalL'auteur ali akbar azizkhani | 2016-05-29