2017-11-14 3 views
1

Ich habe bereits eine bestehende Anwendung mit Hibernate und Embedded Derby arbeiten. Mein hibernate.cfg.xml hat die folgenden EinstellungenSpring Boot zu bestehenden Hibernate hinzufügen - eingebettete Derby-Anwendung

<property name="connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property> 
<property name="connection.url">jdbc:derby:data;create=true</property> 
<property name="connection.username">application</property> 
<property name="connection.password">password</property> 

<property name="hibernate.default_schema">my_application</property> 

alles hat gut funktioniert, aber ich wünsche Federverschluß zu diesem Projekt hinzuzufügen, und ich bin immer

Fehler bei session Objekt zu erstellen. org.hibernate.service.spi.ServiceException: Kann nicht angeforderten Dienst [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

schaffen, wenn ich bin lo Hinzufügen der SessionFactory aus dem Ruhezustand. Warum kann ich das nicht tun? Ist das Laden von Derby von Spring Boot der einzige Weg? Ich möchte nicht, dass Springboot irgendeine Beziehung zur Datenbank hat.

Auch nach dem Hinzufügen von Spring Boot wird meine log4j.properties-Datei nicht mehr gelesen, auch wenn ich Spring-Boot überhaupt nicht ausführen.

Antwort

0

Es gefunden. benötigt application.properties wie diese

spring.jpa.show-sql = true spring.jpa.hibernate.ddl-Auto zu setzen = update spring.jpa.properties.hibernate.dialect = org.hibernate.dialect .DerbyDialect

spring.datasource.url = jdbc: derby: Daten, erstellen = true spring.datasource.username = application spring.datasource.password = Passwort spring.datasource.driver-class-name = org. apache.derby.jdbc.EmbeddedDriver

spring.datasource.initialize = true

spring.jpa.properties.hibernate.current_session_context_class = org.springframework.orm.hibernate4.SpringSessionContext

mein Boot-App eine Hibernate Bohne wie diese

@SpringBootApplication 
@EntityScan("core.peristence.dtos") 
public class App { 

    public static void main(String[] args) { 
     SpringApplication.run(App.class, args); 
    } 

    @Bean 
    public HibernateJpaSessionFactoryBean sessionFactory() { 
     return new HibernateJpaSessionFactoryBean(); 
    } 

} 

und mein Service kann die Bedürfnisse autowire sessionFactory jetzt wie folgt:

@Service 
public class MyService { 

    @Autowired 
    private SessionFactory sessionFactory; 

... 

} 
Verwandte Themen