问题标签 [spring-data-jpa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5620 浏览

java - Spring Entity bean 未知。使用新的 Spring 3.1 packagesToScan 属性并且没有 persistence.xml

我的 EclipseLink 和 Spring(MVC 和 spring-data)版本 3.1.1 设置的另一个问题:

根据本文,我正在尝试在不使用 persistence.xml 文件的情况下让 JPA 工作。在文章中说:

通常,JPA 通过 META-INF/persistence.xml 文件定义一个持久化单元。从 Spring 3.1 开始,不再需要此 XML 文件 - LocalContainerEntityManagerFactoryBean 现在支持“packagesToScan”属性,可以指定要扫描 @Entity 类的包。

persistence.xml 文件是要删除的最后一个 XML 文件——现在,JPA 可以完全设置而无需 XML。

我知道如果使用persistence.xml 文件,这里的所有实体类都应该在这里声明。但是,我正在尝试使用该packagesToScan属性。下面是完整的启动日志和在向 servlet 发出一个请求后产生的错误,该 servlet 最终尝试在数据库中创建一个新用户。它似乎没有认识到该User对象是一个实体。由于我对 Spring 的经验很少,我想知道是否有人首先可以发现我正在犯的错误,但除此之外,知道调试它的最佳方法。我想知道 EntityManagerFactory 已经识别了哪些 Entity 对象。

我的备份选项是切换到使用 persistence.xml(实际上还没有尝试过),但如果可能的话,我想摆脱它(少一个 XML 文件需要担心)。

更新:根据 Sean Patrick Floyd 的回答,我在对 entityManagerFactory 进行了推荐的配置更改后更新了错误日志,但这并没有解决主要问题。我还尝试了另一种方法,通过创建一个 persistence.xml 文件(旧的和更常见的方法)并在我访问的 servlet 中添加一小段测试代码来启动它功能。所以现在我的 servlet 中有这段代码:

而这个 persistence.xml 文件:

这实际上有效,所以我现在想知道 EntityManagerFactory 的初始化方式是否存在问题或类似的问题。我已经包含了应该执行数据库相关工作的 UserService 类的代码。

这是完整的启动日志(包括错误):

根上下文.xml 文件:

用户.java 类:

这是 UserService.java

0 投票
1 回答
6007 浏览

java - Oracle DATE 和 Hibernate/JPA 映射

其中一个 Oracle 表看起来像这样,我没有选择更改它的选项:

JPA 实体(以 Hibernate 作为提供者)如下所示:

现在,让我们进行单元测试:(我使用 Spring Data JPA 作为存储库)下面的行通过 REPORTING_PERIOD 列查询数据库

SOP 的输出是2012-02-01 - 注意从 db 01-FEB-12中的值自动转换

现在,如果我使用“01-FEB-12”直接按日期查询,如下所示,我不会得到任何结果:

请注意,我正在使用来自同一实体的日期字段,我可以在上一个语句中成功获取该字段。

这也不起作用:

非常感谢当 db 中的值为 01-FEB-12 时,我如何通过 REPORTING_DATE 作为参数查询(使用 HQL 也可以)的任何帮助。

0 投票
2 回答
5090 浏览

java - Spring Data Jpa - 扫描测试文件夹中的文件

我正在使用 Spring Data JPA,这很奇怪,但它会尝试扫描(在部署期间)测试文件,这会导致错误:

classnotfoundexception 是因为测试依赖项在 maven 的“测试”范围内。

但我的问题是,为什么要扫描测试文件夹?(/src/main/test)。

上下文配置如下:

你能告诉我我做错了什么吗?我的 .classpath 内容如下:

我真的很感谢你在这方面的帮助。

0 投票
2 回答
7824 浏览

java - 集合包含 @Query

有没有办法在@Query标签中使用“包含”功能?如果不是,那么实现这一点的最佳方法是什么?

例子:

该类User确实有一个Collection包含它们的Roles.

编辑:正如我所建议的那样,我尝试过,应用程序启动了,但是当这个方法被执行时,会发生“不匹配预期类型”的异常。

0 投票
3 回答
14260 浏览

spring - Spring + Spring Data JPA 配置

目前我正在玩 Spring 设置。我的目标是使用 JPA 访问使用其 JNDI 名称的 Websphere 数据源。我正在使用 Spring Data JPA 让我的生活更轻松,并通过一些教程来了解基本概念。

坏事:这些都不是在谈论我的 JPA 场景的 Spring 配置 + 我以前从未使用过 JPA / JDBC。所以我希望你能在这里帮助我。我有2个配置文件:

应用程序上下文.xml

因为我在我的代码中使用@Transactual 注释,所以我正在为 txManager 使用注释驱动的标签。我只是不确定我应该为 txManager 配置什么以及 sessionFactory 标签在做什么。是否有所有支持的 XML 标签的文档?我是否错过了我的场景的重要标签?

eManager 也一样——不确定这是否正确。

持久性.xml

同样的事情:真的不知道我在做什么。我知道我需要一个持久性单元/提供者。我知道很多人为此使用休眠,但如果可能的话,我想保持原生并使用纯 JavaEE / Spring。我只是不确定如何配置它。目前我的项目正在崩溃,告诉我:“JPA PersistenceProvider 返回 null”

0 投票
6 回答
103628 浏览

java - 如何将 @Transactional 与 Spring Data 一起使用?

我刚开始从事 Spring-data、Hibernate、MySQL、JPA 项目。我切换到 spring-data 以便我不必担心手动创建查询。

我注意到@Transactional当您使用 spring-data 时不需要使用 of,因为我也尝试了没有注释的查询。

@Transactional我应该/不应该使用注释是否有特定原因?

作品:

也有效:

提前致谢!

0 投票
1 回答
294 浏览

hibernate-annotations - 在环境之间移动带注释的 jpa 实体

我在 sts 中使用 spring-data 和 jpa 项目方面直接从我的数据库模式生成实体。管理“注释”实体在不同环境(开发、登台、产品 ..etc)之间迁移的最佳实践是什么。

给定一个实体

我如何将上述实体迁移(仅生成针对特定环境的 Maven 工件)到

也许使用spel

环境 spring-data-jpa, spring3.1.0 , osojvHibernateJpaVendorAdapter

提前致谢

0 投票
1 回答
427 浏览

image - JSF 在不同的 Servlet 中从数据库/DAO 加载图像

我一直在阅读 BalusC 的指南,了解如何使用单独的 Servlet 通过 BufferedOutputStream 将图像的字节 [] 表示附加到 HttpServlet 响应,并理解这是必要的,因为 HTML Img 标记引用 URL / 不能接受字节流。

http://balusc.blogspot.co.uk/2007/04/imageservlet.html

我在调整 BalusC 的示例时遇到的问题是我在 JSF 后面使用 Spring 和 Spring Data JPA,所以我的 ImageDAO 实际上是一个位于不同 Servlet(JSF Servlet)后面的 Spring Data JPA 存储库。

有什么方法可以让我处理由 JSF Servlet 后面的 Spring 容器管理的 ImageRepository 的句柄?

我预计对于那些将 IoC 用于他们的应用程序并诉诸编写单独的 Servlet 来满足 HTML Img 标签的需求的人来说,这是一个常见的绊脚石。编写一个单独的 Servlet 并尝试处理另一个 Servlet 感觉就像是对设计的绥靖/肮脏的黑客攻击!

0 投票
3 回答
6720 浏览

spring - 使用注入的 Spring Data JPA 返回“NoSuchMethodError”

我正在使用 Spring-Data-JPA 1.0.3.RELEASE 来管理我的 ORM。

我的 persistence.xml 看起来像这样:

applicationContext 看起来像这样

我的 OrderRepo 界面如下所示:

我在我的服务类中使用它

但看起来 websphere 不太喜欢它,并给了我这个错误:

我发现的关于这个问题的唯一资源指出了以前的 Spring-Data-JPA 版本中的错误,这些版本现在被标记为已修复,或者使用错误的依赖关系到 spring-data-commons jar 的错误 - 但是:我把它留给 maven 所以data-commons 版本应该没问题。我还发现 Spring Data JPA 需要 JPA 2.0 实现,所以我检查了 websphere 服务器上的 openJPA 版本,这很好。

有什么想法可能导致这种情况吗?

0 投票
3 回答
1308 浏览

java - 如何更改对象在 spring-data/hibernate/rest 中的返回方式

我正在使用 Spring-data Hibernate 等开发 REST 应用程序。我已经设置了所有基本操作,但现在我想做一些具体的事情。当我检索具有指向我的数据库中另一个表的外键的项目列表时,休眠将返回该外键的整行。例如:

(顺便说一下,这些都是虚构的数据)

现在的问题是不希望学校全部归还。我只想显示school_id。我在网上搜索并阅读了一些关于“服务级别映射”的内容,但我找不到任何示例。我用一个构建了我的应用程序

控制器 -> 服务 -> dao -> 存储库

设置。

我希望你们能帮助我!(如果您还需要更多源代码,请告诉我)。

非常感谢

编辑

我要补充的是,我的 MySql 表如下所示:

身份证 | 学校 ID | 姓名 | 创建日期

所以我想要返回的只是普通的 school_id 而不是目标学校(在这种情况下)

EDIT2 我正在处理@Dandy 答案,我想展示我现在拥有的代码:

当我像 Danny 建议的那样更改代码时,我得到了我想要的结果......几乎。如果我现在运行查询,这就是我得到的:

问题是我想禁用school这个特定查询。那可能吗?