Spring boot JPA规范筛选嵌套对象
我试图获取嵌套对象属性,但获取illegalArgument异常Spring boot JPA规范筛选嵌套对象,spring-boot,jpa,Spring Boot,Jpa,我试图获取嵌套对象属性,但获取illegalArgument异常 AuditTestingPlanSpecification name = new AuditTestingPlanSpecification(new SearchCriteria("auditPlanId.auditPlanEntity", ":",dates)); Page<AuditTestingPlanMaster> a = auditTestingPlanMasterRepository.fin
AuditTestingPlanSpecification name = new AuditTestingPlanSpecification(new SearchCriteria("auditPlanId.auditPlanEntity", ":",dates));
Page<AuditTestingPlanMaster> a = auditTestingPlanMasterRepository.findAll(name, ten);
类AuditPlanMaster.java
@Entity
@Table(name = "audit_testing_plan_master")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class AuditTestingPlanMaster implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
@Column(name = "risk_area_id")
private Long riskAreaId;
@Column(name = "expected_revert_date")
private Instant expectedRevertDate;
@Column(name = "created_date")
private Instant createdDate;
@Column(name = "last_modified_date")
private Instant lastModifiedDate;
@JoinColumn(name = "audit_plan_id", referencedColumnName = "id")
private AuditPlanMaster auditPlanId;
//getters & setters
}
@Entity
@Table(name = "audit_plan_master")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class AuditPlanMaster implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
@Column(name = "remarks", length = 255)
private String remarks;
@Column(name = "audit_plan_entity", length = 50)
private String auditPlanEntity;
@Column(name = "start_date")
private Instant startDate;
@Column(name = "end_date")
private Instant endDate;
//getters & setters
}
我要获取其AuditPlanMaster.auditPlanEntity字符串与提供的筛选器值匹配的所有AuditTestingPlanMaster对象
提前感谢您的时间和帮助。我也遇到了同样的问题,下面是我如何处理它的一个片段。我的问题是从内部usuario对象访问id字段时,在我的情况下,id就像您的auditPlanEntity,而usuario就像auditplanMaster:
public static Specification<UsuarioErrorEquipo> usuarioContains(String codigoUsuario) {
return (root, query, builder) -> {
Path<Usuario> u = root.get("usuario");
return builder.equal(u.get("id"), codigoUsuario);
};
}
公共静态规范usuarioContains(字符串codigoUsuario){
返回(根、查询、生成器)->{
路径u=root.get(“usuario”);
返回生成器。相等(u.get(“id”)、codigoUsuario);
};
}
我相信,在你的情况下,应该是这样的:
Path<AuditPlanMaster> u = root.get("auditPlanId");
return builder.equal(u.get("auditPlanEntity"), "the value you want to compare");
路径u=root.get(“auditPlanId”);
返回builder.equal(u.get(“auditPlanEntity”),“要比较的值”);
我也有同样的问题,你找到什么了吗?这能回答你的问题吗?
public static Specification<UsuarioErrorEquipo> usuarioContains(String codigoUsuario) {
return (root, query, builder) -> {
Path<Usuario> u = root.get("usuario");
return builder.equal(u.get("id"), codigoUsuario);
};
}
Path<AuditPlanMaster> u = root.get("auditPlanId");
return builder.equal(u.get("auditPlanEntity"), "the value you want to compare");