Hibernate. JPA Criteria#
Возможности данной операции аналогичны возможностям операции выбора по id.
JPA Criteria. Запись.#
import org.testng.annotations.Test;
import ru.tinkoff.qa.neptune.hibernate.model.TestEntity;
import static java.time.Duration.ofMillis;
import static java.time.Duration.ofSeconds;
import static ru.tinkoff.qa.neptune.hibernate.HibernateContext.hibernate;
import static ru.tinkoff.qa.neptune.hibernate.select.common.CommonSelectStepFactory.allByCriteria;
import static ru.tinkoff.qa.neptune.hibernate.select.common.CommonSelectStepFactory.byCriteria;
public class MyTest {
@Test
public void test() {
var cb = hibernate().getCriteriaBuilder(TestEntity.class); // CriteriaBuilder для сущности TestEntity
var cq = hibernate().getCriteriaQuery(TestEntity.class); // CriteriaQuery для сущности TestEntity
var root = cq.from(TestEntity.class); // Root для сущности TestEntity
// выбор одной записи
TestEntity entity = hibernate().select(
//описание того ЧТО выбирается,
//в свободной форме или бизнес
//терминологии
"Test entity",
byCriteria(TestEntity.class, cq.where(cb.ge(root.get("id"), 1L)))
//
//Необходимые параметры
//
);
}
}
JPA Criteria. Записи.#
import org.testng.annotations.Test;
import ru.tinkoff.qa.neptune.hibernate.model.TestEntity;
import java.util.List;
import static java.time.Duration.ofMillis;
import static java.time.Duration.ofSeconds;
import static ru.tinkoff.qa.neptune.hibernate.HibernateContext.hibernate;
import static ru.tinkoff.qa.neptune.hibernate.select.common.CommonSelectStepFactory.allByCriteria;
import static ru.tinkoff.qa.neptune.hibernate.select.common.CommonSelectStepFactory.byCriteria;
public class MyTest {
@Test
public void test() {
var cb = hibernate().getCriteriaBuilder(TestEntity.class); // CriteriaBuilder для сущности TestEntity
var cq = hibernate().getCriteriaQuery(TestEntity.class); // CriteriaQuery для сущности TestEntity
var root = cq.from(TestEntity.class); // Root для сущности TestEntity
// выбор нескольких записей
List<TestEntity> entities = hibernate().select(
//описание того ЧТО выбирается,
//в свободной форме или бизнес
//терминологии
"Test entity",
allByCriteria(TestEntity.class, cq.where(cb.like(root.get("name"), "name")))
//
//Необходимые параметры
//
);
}
}