I have an Organization entity that extends from AbstractEntity, which is giving it three date columns: createdAt, updatedAt and checkedAt.
public abstract class AbstractEntity {
@Column(name = "createdAt")
protected LocalDateTime createdAt;
@Column(name = "updatedAt")
protected LocalDateTime updatedAt;
@Column(name = "checkedAt")
protected LocalDateTime checkedAt;
//more stuff
}
On the OrganizationRepository I made some query methods for getting any of 'createdAt', 'updatedAt' or 'checkedAt' which are working wonderfully, but I tried making a query method that checks all three columns at the same time and it breaks the build with a couple java.lang.IllegalStateException at PartTreeJpaQuery.java:161 exceptions.
@Repository
public interface OrganizationRepository extends JpaRepository<Organization, String>{
List<Organization> findByParentOrganizationIsNull();
Optional<Organization> findByExternalId(String id);
List<Organization> findByCreatedAtBetween(LocalDateTime start, LocalDateTime end);
List<Organization> findByUpdatedAtBetween(LocalDateTime start, LocalDateTime end);
List<Organization> findByCheckedAtBetween(LocalDateTime start, LocalDateTime end);
// THIS LAST ONE DOESN'T WORK
List<Organization> findByCreatedAtBetweenOrUpdatedAtBetweenOrCheckedAtBetween(LocalDateTime start, LocalDateTime end);
}
How can I make a query that checks that Any of the three columns is between the start and end dates??