У меня есть приложение, которое использует Hibernate 4.x, и в настоящее время использует собственные API-интерфейсы Hibernate (что означает, что у меня есть SessionFactory
и Session
s). Я просто заметил, что существующий API критериев устарел в пользу API-интерфейсов JPA (выше):
Hibernate предлагает более старый, устаревший API
org.hibernate.Criteria
, который следует считать устаревшим. Никакая функция разработки не будет нацелена на эти API. В конце концов, характеристики критериев, зависящих от Hibernate, будут перенесены в качестве расширений JPAjavax.persistence.criteria.CriteriaQuery
.
Я не хочу, чтобы конвертировать мое приложение в непосредственное использование EntityManager
(хотя было легко получить Hibernate Session
оттуда), потому что у нас есть большое количество настраиваемой логики конфигурации Hibernate, которая понадобится для замены. Несмотря на это, я определенно хочу использовать API-интерфейсы JPA Criteria, поскольку старые API-интерфейсы устарели (и предположительно будут исчезать в какой-то случайной точке в будущем, если предыдущие выпуски Hibernate - это какие-то признаки), и они также обеспечивают гораздо лучшую безопасность типов.
Как я могу использовать новый API CriteriaQuery/CriteriaBuilder, если я использую SessionFactory/Session?