Java Spring Boot Querydsl:排序-有时不适用于特定的enity属性

Java Spring Boot Querydsl:排序-有时不适用于特定的enity属性,java,spring-boot,querydsl,Java,Spring Boot,Querydsl,我正在用Spring Boot和Angular构建一个数据仓库。对于某些表,我需要搜索、筛选、(多)排序和分页的组合。因此我使用Querydsl,它完全符合我的需要。但是我有一些问题。在构建Java应用程序之后,排序有时对实体的某些属性不起作用。调试表明,对于这些指定属性,pageable中的sorting参数是UNSORTED 为了更清楚地说明这一点,我将展示一些代码。 实体: 实体 @表(name=“ExternalEffortLinkManagement”,schema=“dbo”) @J

我正在用Spring Boot和Angular构建一个数据仓库。对于某些表,我需要搜索、筛选、(多)排序和分页的组合。因此我使用Querydsl,它完全符合我的需要。但是我有一些问题。在构建Java应用程序之后,排序有时对实体的某些属性不起作用。调试表明,对于这些指定属性,
pageable
中的
sorting
参数是
UNSORTED

为了更清楚地说明这一点,我将展示一些代码。 实体:

实体
@表(name=“ExternalEffortLinkManagement”,schema=“dbo”)
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class,property=“externalEffortLinkManagementId”)
公共类外部链接管理{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“ExternalEffortLinkManagement\u ID”)
私有长外部链接管理ID;
@列(name=“Mitarbeiter”)
私人雇员;
@列(name=“Jahr”)
私人国际年;
@列(name=“Monat”)
私人整数月;
@列(name=“projektnumer”)
私有字符串projectNumber;
@列(name=“InitialMailSent”)
私有时间戳initialMailSent;
@列(name=“lastmemendersent”)
私有时间戳lastMembersent;
@列(name=“Active”)
私有布尔活动;
控制器中的方法:

@RequestMapping(value=EXTERNAL\u efforce\u LINK\u MANAGEMENT\u URL+“/advancedSearch”,method=RequestMethod.GET)
@应答器
公共页面资源高级搜索(
@RequestParam(value=“search”,required=false)字符串搜索,
可分页可分页,@RequestParam多值映射参数,
PersistentEntityResourcesAssembler PersistentEntityResourcesAssembler
) {

SimpleGrantedAuthority[]allowedRoles={SYSADMIN,SUBCONTRACTOR_MANAGEMENT};//经过几个小时的搜索,我终于找到了问题

我们有一些“旧的”实体类
ExternalEffortLinkManagement
具有几乎相同的属性,但缺少
employee
projectNumber
。此类被放置在其他包中。这解释了为什么所有其他属性始终被接受为有效的排序参数,而不是employee和projectNumber

它就像java
build
将这两个类(旧类和新类)混为一谈一样。我目前不明白为什么build有时使用新类,有时使用旧类


但是删除旧类解决了这个问题。我仍然认为构建之间的不一致一定是编译器中的错误或类似的东西,因为对我来说没有意义,有时使用包a
中的
类a,有时使用包b
中的
类a,这看起来更像是构建r相关问题,然后是代码问题。尝试删除你的m2存储库,看看它是否有用。好的,你能告诉我什么是m2存储库吗?好的,我发现了。但这并不能解释持续集成的行为。我们使用Azure,客户端需要始终安装统计数据中的所有内容,也就是说,gradla本身和所有依赖于ndenciesI清理了我的gradle缓存,没有变化,这是一个很好的猜测,但仍然基于一个事实,即相同的代码适用于某个构建,而不适用于另一个构建(前提是在同一个构建中,行为是一致的),我仍然认为这是一个与构建相关的问题,而不是代码中的bug