我有一個方法,其簽名是這樣的。
public Page<Config> searchByCriteria(Map<String, String> params, Pageable pageable) {
/prework
if (zoneIds.equals(BLANK_STRING)) {
return repository.findByUserIdAndNameContains(userId, name, pageable)。
}
List<Integer> zones = Arrays
.stream(zoneIds.split(","))
.distinct()
.map(Integer::parseInt)
.collect(toList())。
return repository.findByUserIdEqualsAndNameContainsAndZonesInAndOrderByUpdatedOnDesc(userId, name, zones, pageable)。
}
在這里,當OrderBy子句被附加時,第二個查詢不作業。
然而,當我洗掉OrderBy子句時,它作業得很好。
這里是我在堆疊跟蹤中得到的錯誤。 Config物件 uj5u.com熱心網友回復: 我認為問題在于你用And連接了方法查詢和order by。這應該是可行的。 示例。https://www.baeldung.com/spring-data-sorting#1-sorting-with-the-orderby-method-keyword 檔案參考。https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation
標籤: 上一篇:在產品詳細頁上添加圖片
eg: repository.findByUserIdEqualsAndNameContainsAndZonesIn(...)這個作業很好。
請建議我如何在一起使用In和OrderBy子句。
Caused by: org.springframework.data.mapping. PropertyReferenceException。 No property inAnd found for type Integer! Traversed path: Integer!
@Entity
public class Config extends AbstractEntity implements Serializable {{
@Id
@GeneratedValue(策略=GenerationType.IDENTITY)。
private Integer configId;
private Integer userId;
private String name;
@Enumerated(EnumType.STRING)
private State 狀態。
@ElementCollection[/span
@CollectionTable(name = "zone", joinColumns = @JoinColumn(name = "config_id")
@Column(name = "zone_id")
private Set<Integer> zones = new HashSet<> ()。
@Valid
@ElementCollection; @Valid
@CollectionTable(name = "param", joinColumns = @JoinColumn(name = "config_id")
private Set<ApParam> apParams = new HashSet< > ();
private String remarks;
//getter。
//setter; //setter>
}
repository.findByUserIdEqualsAndNameContainsAndZonesInOrderByUpdatedOnDesc(userId, name, zones, pageable);
