java - 如何在简单的Servlet中使用Spring Data JPA?

标签 java spring servlets spring-data-jpa

我对 Spring 非常陌生,但我正在开发一个使用 Spring Data JPA 为 JPA 实体生成存储库的项目。

我目前正在添加一个简单的模块,以便能够在网页上显示一些数据。我添加了一个 Servlet,但从那里访问存储库时遇到问题。

我在 web.xml 中添加了一个 ContextLoaderListener,我在 applicationContext.xml 中引用了 jpa:repositories 和 persistence.xml,但我目前遇到了这个异常:

No unique bean of type [javax.persistence.EntityManagerFactory] is defined: expected single bean but found 0.

但是当我在 persistence.xml 中添加 EntityManagerFactory 时,我收到以下神秘消息:

java.lang.IllegalAccessError: tried to access field org.hibernate.engine.spi.CascadeStyle.STYLES from class org.hibernate.engine.spi.EJB3CascadeStyle

我的问题是:我想做的事情可能吗?如果是这样,怎么办? 或者我应该硬着头皮使用 Spring MVC 或完全使用其他东西?

注意:这仅适用于单页网站,我试图使其尽可能简单。

最佳答案

为了使用 Spring Data JPA,您需要像在 Spring 中通常执行的那样配置底层 JPA 实现,例如,请参阅 infrastruction.xmlMETA-INF/persistence。 spring-data-jpa-showcase 中的 xml (从 Spring 3.1 开始,如果使用 LocalContainerEntityManagerFactoryBeanpackagesToScan 属性,则可以摆脱 persistence.xml)。

您的第二个问题 IllegalAccessError 看起来像是由于类路径中存在不同版本的 Hibernate jar 引起的类加载问题。

关于java - 如何在简单的Servlet中使用Spring Data JPA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384018/

相关文章:

java - 如何使用MockMvc的redirectedUrlPattern来匹配URL?

java - Spring - 获取所有可解析的消息键

Java-调用.net wcf web服务Spring

java - JSP 全局脚本变量

java - Spark Java 版本错误

java - 使用 Spring Boot 隐式提供 index.html

java - 将双向实体方法与 Mapstruct 结合使用

java - 使用 jquery/spring/jackson 将 json 转换为 pojo

java - eclipse WTP : Remove tomcat specific jar from build path

java - 生成动态表以及动态单选按钮以进一步在 JSP 中生成动态表