Frühjahr: Fehlende JPA-Metamodell

Kann ich nicht verstehen, was falsch mit meinem einfachen Spring MVC Projekt mit JPA-repositories. Könnten Sie bitte einen Tipp geben.

Domain:

package com.test.app;

@Entity
@Table(name = "foo_table")
public class FooDomain {

    @Id
    @Column(name = "id", unique = true, nullable = false)
    private Integer id;

    @Column(name = "text", nullable = false)
    private String text;

    //getters & setters here...

}

Repository

package com.test.app;

@RepositoryDefinition(domainClass=FooDomain.class, idClass=Long.class)
public interface FooRepository extends CrudRepository<FooDomain, Long> {}

Controller

@Controller
public class HomeController {

    @Autowired
    private FooRepository fooRepository;

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
        model.addAttribute("rowsNumber", fooRepository.count());
        return "home";
    }

}

root-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns & xsi here...>
    <context:annotation-config />

    <!-- Defining folders containing bean components (@Component, @Service)  -->
    <context:component-scan base-package="ru.lexikos.app" />

   <import resource="hibernate.xml" />

   <import resource="repositories.xml" />

   <context:component-scan base-package="com.test.app" />
</beans>

hibernate.xml

<?xml xmlns & xsi here...>

    <context:property-placeholder location="classpath:db-connection.properties" />

    <bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.user}" />
        <property name="password" value="${jdbc.pass}" />
    </bean>

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            </props>
        </property>
    </bean>

</beans>

repositories.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns & xsi here...>

  <jpa:repositories base-package="com.test.app"/>

</beans>

Ausnahme

ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMapppingContext': Invocation of init method failed; nested exception is ja
va.lang.IllegalArgumentException: At least one JPA metamodel must be present!
Caused by: java.lang.IllegalArgumentException: At least one JPA metamodel must be present!
  • Wo ist die Erklärung der EntityManagerFactory?
  • wenn Sie "mit JPA" warum haben Sie "SessionFactory" Sachen ganz über dem Platz?
InformationsquelleAutor Maksim | 2014-11-04
Schreibe einen Kommentar