Java 弹簧靴JPA&;H2:高效搜索REST API(如何处理List<;String>;类型的属性?);?
我有一个带有JPA和H2数据库的Spring Boot应用程序。该应用程序对于简单的数据类型可以正常工作,但是类型列表的属性存在问题Java 弹簧靴JPA&;H2:高效搜索REST API(如何处理List<;String>;类型的属性?);?,java,spring,spring-boot,jpa,Java,Spring,Spring Boot,Jpa,我有一个带有JPA和H2数据库的Spring Boot应用程序。该应用程序对于简单的数据类型可以正常工作,但是类型列表的属性存在问题 @Entity public class Car { @Column private String manufacturer; @Column @ElementCollection(targetClass = String.class) private List<String> specialEquip
@Entity
public class Car {
@Column
private String manufacturer;
@Column
@ElementCollection(targetClass = String.class)
private List<String> specialEquipment;
控制器:
public ResponseEntity<List<Car>> getCarBySpecification(
@And({
@Spec(path = "manufacturer", params = "manufacturer", spec = EqualIgnoreCase.class),
// ....
@Spec(path = "specialEquipment", params = "specialEquipment", spec = In.class),
})
Specification<Car> spec) {
return ResponseEntity.ok().body(this.carService.getCarBySpecification(spec));
}
public ResponseEntity getCarBySpecification(
@及({
@Spec(path=“manufacturer”,params=“manufacturer”,Spec=EqualIgnoreCase.class),
// ....
@Spec(path=“specialEquipment”,params=“specialEquipment”,Spec=In.class),
})
规格(规格){
返回ResponseEntity.ok().body(this.carService.getCarBySpecification(spec));
}
现在的大问题是,如何查询列表中的单个条目
curl'localhost:8080/car/search?specialEquipment=AC'
例外情况:
java.lang.IllegalArgumentException:参数值[AC]与预期类型[java.util.Collection(n/a)]不匹配
能否使用类似于@Spec(path=“specialEquipment”,params=“specialEquipment”,Spec=IsMember.class)
?
public ResponseEntity<List<Car>> getCarBySpecification(
@And({
@Spec(path = "manufacturer", params = "manufacturer", spec = EqualIgnoreCase.class),
// ....
@Spec(path = "specialEquipment", params = "specialEquipment", spec = In.class),
})
Specification<Car> spec) {
return ResponseEntity.ok().body(this.carService.getCarBySpecification(spec));
}