Встречается на собеседованиях • сегодня

Действует ли нативный запрос на уровне ассоциации

Нет, нативный SQL-запрос (через @NamedNativeQuery или EntityManager.createNativeQuery()) работает на уровне таблиц БД, а не ассоциаций JPA. Он оперирует сырыми SQL-запросами без учета объектной модели.

Пример:

java
@Entity
@NamedNativeQuery(
    name = "findUserWithAddress",
    query = "SELECT u.*, a.* FROM users u JOIN addresses a ON u.address_id = a.id",
    resultClass = User.class
)
public class User {
    @ManyToOne
    private Address address; // Ассоциация не учитывается в нативном запросе
}

Чтобы работать с ассоциациями, нужно либо:

  1. Вручную маппить результаты в объекты
  2. Использовать JPQL (HQL), который понимает ассоциации
  3. Применять @SqlResultSetMapping для кастомного маппинга
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы