Pascal4eg / Java

 Java | Фишки и трюки

QueryDSL

EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnitName");
EntityManager em = emf.createEntityManager();
JPAQueryFactory queryFactory = new JPAQueryFactory(JPQLTemplates.DEFAULT, em) ;
QPerson person = Person.person;
List<Person> persons = queryFactory.selectFrom(person)
        .where(
            person.firstName.eq("John"),
            person.lastName.eq("Doe"))
        .orderBy(
            person.lastName.asc(),
            person.firstName.desc())
        .fetch();

QueryDSL — это мощный и чрезвычайно гибкий инструмент для работы с БД и просто подарок для Java-разработчиков, которые не очень хорошо разбираются в SQL (или совсем не разбираются), поскольку позволяет работать с БД при помощи привычного объектного представления сущностных зависимостей.

Querydsl был создан как замена громоздкого и многословного Criteria Query API.

Достоинства:

👉 типобезопасные запросы

👉 статическая проверка запросов