Ich habe ein 3rd Party Jar, das alle Entitäten und Mapping enthält. Ich verwende dieses jar erfolgreich in einer klassischen Spring-MVC-Anwendung, aber jetzt versuche ich es in einer Spring-Boot-Anwendung zu verwenden. (1.5.7.RELEASE)Spring Boot - Hibernate - Tabelle existiert nicht
Ich habe dies für meine Applicaion.java:
@SpringBootApplication
@EntityScan(basePackages = "com.third.party.entity.package")
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Da es eine dritte Partei ist, ich habe auch die Sitzung Scan haben, so habe ich dies in meinem @ Konfigurationsklasse:
@Bean
public LocalSessionFactoryBean sessionFactory(EntityManagerFactory emf) throws ClassNotFoundException {
LocalSessionFactoryBean fact = new LocalSessionFactoryBean();
fact.setAnnotatedPackages("com.third.party.entity.package");
fact.setPackagesToScan("com.third.party.entity.package");
fact.setDataSource(dataSource);
return fact;
}
und dies in meinem application.properties:
spring.datasource.url=jdbc:mysql://dbserver:3306/mydb?useSSL=false
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.tomcat.max-wait=20000
spring.datasource.tomcat.max-active=50
spring.datasource.tomcat.max-idle=20
spring.datasource.tomcat.min-idle=15
spring.jpa.properties.hibernate.dialect =org.hibernate.dialect.MySQL5Dialect
spring.jpa.properties.hibernate.id.new_generator_mappings = false
spring.jpa.properties.hibernate.format_sql = true
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
ich diese Störung erhalte:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mydb.user' doesn't exist
Jetzt ist der Tabellenname "Benutzer", so dass Art von Sinn macht. Allerdings verwende ich dieses Glas für eine andere Anwendung, so dass alle anderen 100 Antworten zu diesem Thema nicht gelten.
Es muss ein Konfigurationsproblem sein? Recht?
UPDATE Ich versuchte @ Sam unten ohne Erfolg zu beantworten, aber ich war in der Lage auf den Quellcode dieser 3rd-Party-JAR-Datei zu suchen, und es sieht wie folgt aus:
@Entity
@Table(name = "User")
public class User {
etc...
}
So ist die Der Tabellenname in der Anmerkung ist korrekt. Wie bekomme ich Frühling, um das zu benutzen? Ich suche eine Standardbenennungsstrategie und Sachen ... Irgendwelche Vorschläge?
ich nicht DDL-Auto einstellen zu aktualisieren, da ich die DB nicht ändern kann. Das Ausschließen von HibernateJpaAutoConfiguration gibt mir nur eine bean nicht gefundene Bean vom Typ 'javax.persistence.EntityManagerFactory' – mmaceachran
@mmaceachran Hast du @EntityScan (basePackages = "com.third.party.entity.package" überprüft) ist korrekt !! –
ja, das ist das richtige Paket. Ich habe es gerade umbenannt. Und ich habe meine Frage bearbeitet, also zeige die User-Klasse etwas an. – mmaceachran