Tôi không thể hiểu những gì đang xảy ra với dự án Spring MVC đơn giản của tôi với các kho lưu trữ JPA. Bạn có thể vui lòng đưa ra một gợi ý.Mùa xuân: Thiếu JPA Metamodel
miền:
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> {}
khiển
@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";
}
}
gốc 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>
Exception
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!
Tuyên bố của EntityManagerFactory ở đâu? – Xstian
nếu bạn đang "sử dụng JPA" tại sao bạn có công cụ "SessionFactory" trên khắp nơi? –