【发布时间】:2020-03-18 05:54:08
【问题描述】:
我有一个仓库
public interface PersonRepository extends JpaRepository<Person, Long> {}
实体看起来像这样:
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
public class Person {
@Id
private Long id;
@NotBlank
private String name;
}
我想要一个方法来检查数据库表中是否存在所有“人员”,这是我目前所拥有的:
void checkIfAllPersonsExist(List<Long> personIds) {
var persons = personRepository.findAllById(personIds);
if (personIds.size() != persons.size()) {
personIds.removeAll(persons.stream().map(Persons::getId).collect(toList()));
throw new NotFoundException("Persons with id's [id:%s] does not exist", personIds);
}
}
我想知道 Spring JPA Repository 是否可以提供更优雅的东西?像返回不存在的 id 的特定命名查询一样?
【问题讨论】:
-
为什么
JpaRepository<Person, String> {}的 ID 是String而不是Long? -
@lczapski 这只是一个错字,我已经编辑了问题。
标签: spring spring-boot spring-data-jpa