Code: Select all
@Entity
@Table(name = "Item")
class Item(
@Column(name = "name", nullable = false)
var name: String,
@Column(name = "added_date", columnDefinition = "TIMESTAMP WITH TIME ZONE", nullable = true)
var addedDate: ZonedDateTime? = null,
@Column(name = "duration", nullable = true)
var duration: Int? = null,
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "head_of_id", nullable = false)
val headOf: HeadOf,
) {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Long = 0
}
Code: Select all
interface ItemRepository : JpaRepository {
fun findByHeadOfIdAndAddedDateNotNullOrDurationNotNull(
headOfId: Long,
position: ScrollPosition,
pageable: Pageable,
): Window
}
Code: Select all
INSERT INTO public.item VALUES (1, 'Some fancy title', '2024-12-31 07:14:42.955789+00', NULL, 1000);
Wenn ich nun diese Funktion aufrufe, findByHeadOfIdAndAddedDateNotNullOrDurationNotNull mit den folgenden Werten
headOfId: 0
scrollPosition: null
PageRequest.of(0, 10)
Es gibt mir die eine Zeile zurück, die dort drin ist. Das erwarte ich nicht, denn die headOfId, die ich übergebe, ist 0L und nicht 1000L.
Dies ist die durchgeführte Anfrage
Code: Select all
SELECT
i1_0.id,
i1_0.added_date,
i1_0.duration,
i1_0.head_of_id,
FROM
item i1_0
LEFT JOIN
headOf h1_0
ON
h1_0.id = i1_0.head_of_id
WHERE
h1_0.id = ?
AND (i1_0.added_date IS NOT NULL OR i1_0.duration IS NOT NULL)
OFFSET
? ROWS
FETCH FIRST
? ROWS ONLY;
Abfrage konnte nicht erstellt werden für öffentliche Zusammenfassung org.springframework.data.domain.Window org...jpa.repository.ItemRepository.findByHeadOfIdAndAddedDateNotNullOrDurationNotNull(long,org.springframework.data.domain.ScrollPosition,org.springframework.data.domain.Pageable);
Grund: Scroll-Abfragen werden mit String-basiert nicht unterstützt Abfragen
Gibt es eine Lösung dafür?