Я пытаюсь понять использование nativeQuery
с данными пружины JPA. Подумайте над тем, где я вытаскиваю USER_NAME
из таблицы USER
.
открытый интерфейс UserRepository расширяет JpaRepository {
@Query(value = "SELECT USER_NAME FROM USER WHERE EMAIL_ADDRESS = ?1", nativeQuery = true)
String findByEmailAddress(@Param("emailAddress") String emailAddress );
}
Все хорошо. Теперь на том же интерфейсе я могу добавить метод, как показано ниже, где он извлекается из SOME_OTHER_TABLE
и не будет соответствовать классу сущности User
.
@Query(value = "SELECT USER_NAME FROM SOME_OTHER_TABLE WHERE EMAIL_ADDRESS = ?1", nativeQuery = true)
String findByEmailAddress(@Param("emailAddress") String emailAddress );
}
Это тоже отлично работает. Теперь мой реальный вопрос: зачем нам нужен User
класс сущностей, если он не имеет ничего общего с native query
. Мы просто пытаемся убедиться, что код будет правильно компилироваться? Также это означает, что я могу даже поставить любой класс entity
, например JpaRepository<SOmeRandomEntityClass, Long>
, и он все равно будет работать.