问题标签 [spring-data-commons]

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 投票
1 回答
310 浏览

spring-boot - Spring boot 1.3.0 升级和 JPA 自定义方法不起作用

升级到 Spring Boot 版本 1.3.0.RELEASE 后,我在尝试启动时看到以下失败。

这是导致问题的代码的相关片段。没有对任何存储库或数据模型进行任何更改。

任何有关此问题的帮助将不胜感激。我尝试回到旧版本的 spring-data-common 但这不适用于新的 spring-data-jpa。

谢谢!

0 投票
2 回答
38079 浏览

java - Spring Data Repositories - 查找列表中的 where 字段

我正在尝试使用PagingAndSortingRepository带有find MyEntity where field in fieldValues查询的spring,如下所示:

但没有成功。

我希望上述函数返回其字段与字段值之一匹配的所有实体,但它只返回空结果

尽管这似乎是一种非常直接的能力,但我在文档中找不到任何对它的引用。

是/如何实现的?

谢谢。

0 投票
1 回答
519 浏览

spring-data - 带下划线的变量在派生查询方法(spring-data)中创建编译错误

带下划线的变量会创建错误,提示“描述资源路径位置类型无效的派生查询!找不到字符串类型的属性 _db!遍历的路径:Trnsction.ddate。...”

我有“spring-data-commons » 1.11.2.RELEASE”,在这个版本中,问题似乎得到了解决(https://jira.spring.io/browse/DATACMNS-569)但是在我的存储库类中,当我添加了一个如下所示的方法,尽管我转义了下划线,但它仍然无法编译。

我的变量的名称是ddate_db,它的类型是Date

0 投票
1 回答
643 浏览

java - 为什么我不能构建 Spring Data Commons?

我正在尝试在我的机器上构建 spring-data-commons:

我做了以下事情:

我有:

我目前的设置:

java.util.Date.toInstant此外,我可以在我的 jdk 中找到该方法。

更新:

这是mvn clean install -X输出的一部分:

这与-target 1.6 -source 1.6下面的片段有关吗?

0 投票
1 回答
1696 浏览

spring-mvc - 无法将 @SortDefault 排序对象传递给控制器​​方法?

它在文档中@SortDefault说明

定义在将 Sort 实例注入控制器处理程序方法时要使用的默认 Sort 选项的注释。

但事实是,我得到了这个例外:

无法实例化 [org.springframework.data.domain.Sort]:未找到默认构造函数;嵌套异常是 java.lang.NoSuchMethodException: org.springframework.data.domain.Sort.()

我在这里错过了什么吗?

0 投票
0 回答
614 浏览

postgresql - 由于 cachedCriteriaQuery 在 openjpa 2.4.1 上不正确,因此无法通过带有后缀 IN 的 spring-data-jpa 查询方法进行查询

更新:

在我深入研究了 spring-data-jpa 存储库查询方法的源代码后,我发现根本原因是PartTreeJpaQuerycreateQuery的方法,如下所示。

该方法会在调用spring-data-jpa仓库查询方法接口时被RepositoryFactorySupport的QueryExecutorMethodInterceptor的invoke方法调用。

在第一次调用时,cachedCriteriaQuery变量 willSELECT s FROM Subtask s WHERE (s.deviceId IN (:deviceIdList) AND s.state IN (:states)) ORDER BY s.idvalues变量 is[[1000000002], [5, 10]]都如预期的那样正确。

但是,在第二次调用时,cachedCriteriaQueryisSELECT s FROM Subtask s WHERE (s.deviceId IN ('1000000002') AND s.state IN (5,10)) ORDER BY s.id和 the valuesis [[1000000003], [5]]。看起来传递给 openjpa 和 jpa 查询的值是正确的,但criteriaQuery不是。

如果我将openjpa库更改为2.2.2版本,则每次调用此方法时,cachedCriteriaQuery变量都是ALWAYS SELECT s FROM Subtask s WHERE (s.deviceId IN (:deviceIdList) AND s.state IN (:states)) ORDER BY s.id

  • 为什么cachedCriteriaQuery变量会改变?

    它是 PartTreeJpaQuery 的 QueryPreparer 的私有和最终字段,唯一可以分配它的方法是 QueryPreparer 的构造函数。我已经在那里设置了一个断点,但是在第一次和第二次调用之间,我没有看到任何进程调用了这个构造函数,这个变量怎么会改变?

  • 我所做的只是更改了 openjpa 库。

    但上面的代码是 spring-data-jpa 和/或 spring-data-commons。这如何影响查询创建的行为?


给出如下单元测试代码,通过 and 字段查询子find IN任务deviceId实体state。第一次查询是 find IN deviceId 1000000002and, state 5and 10。第二次查询是 find IN deviceId1000000003和 state 5

subtaskDaospring-data-jpa repository query method接口如下

然而,结果如下,并不像我们预期的那样正确。第二次查询出来了,结果是 deviceId 的子任务,1000000002而不是 deviceId 1000000003

根据 openjpa.Log,第一次查询(在第 7272 行)Query "SELECT s FROM Subtask s WHERE (s.deviceId IN (:deviceIdList) AND s.state IN (:states)) ORDER BY s.id"。但在第二次,它查询Query "SELECT s FROM Subtask s WHERE (s.deviceId IN ('1000000002') AND s.state IN (5,10)) ORDER BY s.id". 为什么参数不是:deviceIdListand :states

spring我们使用的, spring-data-jpa,jdbc driver和libs的版本openjpa如下, jdk 是1.8, 数据库是PostgreSQL 9.4 windows version.

实体类在构建时通过openjpa-maven-plugin

EntityManagerFactoryBean设置persistence.xml如下_

即使我将QueryCacheQuerySQLCache都设置为false,它仍然无法正常工作。

但是,如果我将库降级openjpa为 version 2.2.2它完全适用于所有相同的 code 和 configuration。此外,如果我使用@Query下面的 subtaskDao 接口,即使使用openjpa version 2.4.1.

我没有发现的棘手问题是什么?

0 投票
2 回答
4117 浏览

java - Spring Data Slice:getSize() 和 getNumberOfElements() 之间的区别

Spring Data 类getSize()和in 有什么区别?getNumberOfElementsorg.springframework.data.domain.Slice

Javadoc 在这里没有提供太多帮助。

0 投票
0 回答
86 浏览

range - Java,spring-data-commons,无法创建范围, 为什么?

JavaLocalDate实现Comparable<ChronoLocalDate>,但它应该已经实现Comparable<LocalDate>以允许创建Range<LocalDate>. 之所以如此,是因为声明是Range<T extends Comparable<T>>

spring-data-commons/src/main/java/org/springframework/data/domain/Range.java

问题是可以spring-data-commons Range有以下类声明:

这可能有助于创建Range<LocalDate>.

0 投票
1 回答
127 浏览

java - 为什么 PropertyPath 构造函数中的 propertyName 不遵循 Javabeans 规范?

PropertyPath 类的构造函数中的变量 propertyName 的名称似乎不符合 JavaBeans 规范(8.8 推断名称的大写。)。

https://github.com/spring-projects/spring-data-commons/blob/master/src/main/java/org/springframework/data/mapping/PropertyPath.java

该代码意味着当名称与 ALL_UPPERCASE 不匹配时,第一个大写字母将更改为小写。

但是 JavaBeans 规范说:

例如:如果我在一个类中有一个名为 [MCount] 的属性,那么根据 JavaBeans 规范,属性名称应该是 [MCount]。但是如果我使用下面的 [PropertyPath.from](它将调用 PropertyPath 构造函数)来获取属性,我会得到以下异常,因为属性名称已更改为 [mCount]。

异常:java.lang.IllegalArgumentException:无法在此 ManagedType [类] 上找到具有给定名称 [mCount] 的属性...

有人有好的意见吗?谢谢!

0 投票
4 回答
55731 浏览

java - PageRequest 构造函数已被弃用

我正在处理 Spring Data Commons v2+ 快照,我看到 a 的构造函数PageRequest已被弃用。这似乎发生在M1M2之间。不幸的是,这是该Pageable接口的唯一 [真正] 实现。我想知道努力的方向,以及当前发展的更好选择。