我正尝试通过以下方式使用查询方法来检索对象列表:
@Entity
public class Cancellation {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@OneToMany(mappedBy="cancellation", cascade=CascadeType.ALL)
@JsonBackReference
private Set<Schedule> schedules = new HashSet<Schedule>();
}
@Entity
public class Schedule {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@NotNull
private Date date;
@NotNull
private Time time;
@ManyToOne
@JsonManagedReference
private Cancellation cancellation;
}
public interface CancellationRepository extends CrudRepository<Cancellation,
Integer> {
List<Cancellation> findBySchedulesDateGreaterThanEqual(Date date);
}
问题在于,当列表中仅应返回一个Cancellation对象时,查询返回的对象很好,其余的返回空。返回的对象数与数据库中的计划数匹配。
在单个对象的图像中,“取消不为空”是第一个。
解决方案
根据@JBNizet的建议,我将方法更改为:
List<Cancellation> findDistinctCancellationBySchedulesDateGreaterThanEqual(Date date);
现在像魔咒一样工作