Mediumhibernatejpa
Чем Hibernate отличается от JPA?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
JPA (Jakarta Persistence) — спецификация (интерфейсы в jakarta.persistence). Hibernate — реализация JPA, ORM-фреймворк. Другие реализации: EclipseLink, OpenJPA.
// Использовать JPA-типы — portable между реализациями
@Entity
public class User {
@Id @GeneratedValue
private Long id;
private String name;
}
// Spring Data JPA — генерирует impl из interface
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByName(String name); // из имени метода
@Query("SELECT u FROM User u WHERE u.active = true")
List<User> findActive();
}- Hibernate-специфичное:
Session(аналог EntityManager), HQL (vs JPQL); - JPQL — portable query language, транслируется в SQL;
- Criteria API — typesafe query builder;
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.