无法使用弹簧数据 jpa CrudRepository
Posted
技术标签:
【中文标题】无法使用弹簧数据 jpa CrudRepository【英文标题】:Unable to use spring data jpa CrudRepository 【发布时间】:2019-03-17 08:43:00 【问题描述】:我正在尝试使用 Spring 数据 jpa 中的 CrudRepository。我在 spring-servlet.xml 文件中遇到错误。我想我缺少一些配置。
spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans "
xmlns:ctx="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xmlns:repository="http://www.springframework.org/schema/data/repository"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
">
<ctx:annotation-config></ctx:annotation-config>
<mvc:annotation-driven />
<ctx:component-scan base-package="com.entransys"></ctx:component-scan>
<!-- <repositories base-package="com.entransys.repositories" /> -->
<jpa:repositories base-package="com.entransys.repository"/>
<bean
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean class="org.springframework.data.web.config.SpringDataWebConfiguration" />
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/springdata" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
<bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
我在 pom.xml 中添加了以下依赖项
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.0.8.RELEASE</version>
</dependency>
错误
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
来自 ServletContext 资源的 XML 文档中的第 15 行 [/WEB-INF/spring-servlet.xml] 无效;嵌套异常是 org.xml.sax.SAXParseException;行号:15;列号:4; cvc-elt.1:找不到元素“beans”的声明。 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) 在 org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) 在 org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
【问题讨论】:
我想我缺少一些配置。 - 为什么?你有问题吗? 发布错误:) 你能发布你得到的吗? 我已经编辑并添加了错误。请检查 【参考方案1】:这里只有尾随空格:xmlns="http://www.springframework.org/schema/beans "
,spring-servlet.xml
中的第 2 行。去掉就好了。
【讨论】:
删除空间后出现以下错误Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: At least one JPA metamodel must be present!
这个新错误与第一个错误无关。快速查看 *** 表明它很可能与错误的 Maven 依赖项有关。以上是关于无法使用弹簧数据 jpa CrudRepository的主要内容,如果未能解决你的问题,请参考以下文章