Данные Spring JPA возвращают неожиданный результат с запросом на основе прокрутки и приоритетом операцийJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Данные Spring JPA возвращают неожиданный результат с запросом на основе прокрутки и приоритетом операций

Сообщение Anonymous »

У меня есть эти сущности

Код: Выделить всё

@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
}

@Entity
@Table(name = "head_of")
class HeadOf(
@Column(name = "company", nullable = false)
var company: String,

@Column(name = "city", nullable = false)
var city: String,

@Column(name = "age", nullable = true)
var age: Int?
) {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Long = 0
}

и это соответствующий репозиторий

Код: Выделить всё

interface ItemRepository : JpaRepository {
fun findByHeadOfIdAndAddedDateNotNullOrDurationNotNull(
headOfId: Long,
position: ScrollPosition,
pageable: Pageable,
): Window
}
Это то, что сейчас находится в таблице Item. Это одна строка (результат дампа)

Код: Выделить всё

INSERT INTO public.item VALUES (1, 'Some fancy title', '2024-12-31 07:14:42.955789+00', NULL, 1000);
Как видите, headOf равен 1000L.
Теперь, когда я вызываю эту функцию findByHeadOfIdAndAddedDateNotNullOrDurationNotNull со следующими значениями

headOfId: 0
scrollPosition: ScrollPosition.of(...)
PageRequest.of(0, 10)

он ​​возвращает мне одну строку, которая там есть. Я этого не ожидаю, потому что передаваемый мною headOfId равен 0L, а не 1000L.
Я не могу использовать @Query аннотация, тогда я получаю это

Не удалось создать запрос для общедоступного абстрактного org.springframework.data.domain.Window org...jpa.repository.ItemRepository.findByHeadOfIdAndAddedDateNotNullOrDurationNotNull(long,org.springframework.data.domain.ScrollPosition,org.springframework.data.domain.Pageable);
Причина: запросы прокрутки не поддерживаются с использованием строковых запросов запросы

Есть ли решение этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -operation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»