Ответ
Да, это основная концепция JPA (Java Persistence API). ORM (Object-Relational Mapping) позволяет оперировать объектами (сущностями) и их полями, а не таблицами и столбцами базы данных.
Пример JPQL-запроса:
@Entity
public class User {
@Id
private Long id;
private String name;
// Геттеры и сеттеры
}
// Запрос, использующий сущность User
TypedQuery<User> query = entityManager.createQuery(
"SELECT u FROM User u WHERE u.name = :name", User.class
);
query.setParameter("name", "John");
List<User> users = query.getResultList();
Преимущества подхода:
- Абстракция от БД: Используются имена классов (
User) и их полей (name), а не таблиц. - Полиморфизм: Поддерживаются запросы для иерархий наследования сущностей.
- Безопасность типов: При использовании
TypedQueryили Criteria API ошибки могут быть выявлены на этапе компиляции. - Учет связей: Автоматически учитываются маппинги, заданные аннотациями (
@OneToMany,@ManyToOneи др.).