gpt4 book ai didi

java - Spring Data JPA Query方法以查找具有空列表属性的所有对象

转载 作者:行者123 更新时间:2023-12-03 23:54:23 25 4
gpt4 key购买 nike

我有一个实体,其中包含一个列表属性:

@Entity
@Table(name="sales.jobs")
public class Job {
...
private List<Shipment> jobShipments;
...
@OneToMany(cascade=CascadeType.ALL,orphanRemoval=true, fetch=FetchType.LAZY)
@JoinTable(name="sales.jobs_shipments",
joinColumns = @JoinColumn(name="fk_jobid", referencedColumnName="pk_jobid"),
inverseJoinColumns = @JoinColumn(name="fk_shipmentid", referencedColumnName="pk_shipmentid"))
public List<Shipment> getJobShipments() {
return jobShipments;
}

public void setJobShipments(List<Shipment> jobShipments) {
this.jobShipments = jobShipments;
}
...
}

在存储库中,我想要一个查询方法来返回所有作业,其中 jobShipments是一个空列表。我第一次尝试了 IsNull关键字如下所示,但这不起作用,因为如果没有发货,它是一个空列表而不是空列表。
@Repository
public interface JobRepository extends CrudRepository<Job, Integer> {
Page<Job> findByJobShipmentsIsNull(Pageable pageable);
}

我查看了文档中的关键字,希望能找到类似 IsEmpty 的内容。 ,但我找不到任何看起来正确的东西。

我正在寻找使用关键字而不是写出查询的答案,但我认为这将是后备。谢谢!

最佳答案

其实还有关键词IsEmptyEmpty对于集合:

@Repository
public interface JobRepository extends CrudRepository<Job, Integer> {
Page<Job> findByJobShipmentsIsEmpty(Pageable pageable);
}

@Entity
@Table(name="sales.jobs")
public class Job {
...
@OneToMany(cascade=CascadeType.ALL,orphanRemoval=true, fetch=FetchType.LAZY)
@JoinTable(name="sales.jobs_shipments",
joinColumns = @JoinColumn(name="fk_jobid", referencedColumnName="pk_jobid"),
inverseJoinColumns = @JoinColumn(name="fk_shipmentid", referencedColumnName="pk_shipmentid"))
private List<Shipment> jobShipments = new ArrayList<Shipment>();
}

Appendix C: Repository Query Keywords .

关于java - Spring Data JPA Query方法以查找具有空列表属性的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51268281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com