Я знаю, что это может быть очень простой вопрос для некоторых из вас, но я с трудом пытаюсь выяснить, как создать простое Выбрать * Из X Где Xa =: myparam , используя CriteriaBuilder .
Теперь вот код, который мне удалось построить до сих пор:
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
Root<MyClass1> r = cq.from(MyClass1.class);
cq.select(r);
ParameterExpression<Long> p = cb.parameter(Long.class);
cq.where(cb.equal(r.get("anotherClass.id"), p));
javax.persistence.Query q = getEntityManager().createQuery(cq);
Класс, к которому я применяю этот запрос:
@Entity
public class MyClass1 implements Serializable {
@Id
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ANOTHERCLASS_ID")
private AnotherClass anotherClass;
...
}
@Entity
public class AnotherClass implements Serializable {
@Id
private Long id;
...
}
Мне просто нужно выбрать все записи из myclass1"ГДЕ" anotherClass.id = 1L , и где я могу установить "1L", язнаю, это идет в р но куда?
Вот и все.Выглядит просто, но я действительно не знаком с этим CriteriaBuilder, так что надеюсь, что у вас могут быть некоторые ответы.
Спасибо.