У меня есть объект таблицы следующим образом:
@Entity
@Table(name = "RMS_TABLES", schema = "PUBLIC", catalog = "RMS")
public class TablesEntity {
private long id;
private String name;
private Timestamp createdTimestamp;
private Timestamp updatedTimestamp;
}
Аналогично, у меня есть объект заказа следующим образом:
@Entity
@Table(name = "RMS_ORDERS", schema = "PUBLIC", catalog = "RMS")
public class OrdersEntity {
private long id;
private CustomersEntity customer;
private String status;
private Timestamp createdTimestamp;
private Timestamp updatedTimestamp;
private TablesEntity table;
private List<OrderDetailEntity> orders;
private double subTotal;
private double discount;
private double vat;
private double serviceCharge;
private double total;
}
Что я хочу сделать, это сделать списокзаказ на основе идентификатора и имени таблицы.
До сих пор я делал следующее в репозитории заказов:
Session session = null;
try {
// Get the record with the username.
session = HibernateUtility.getSessionFactory().openSession();
session.beginTransaction();
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
CriteriaQuery<OrdersEntity> criteriaQuery = criteriaBuilder.createQuery(OrdersEntity.class);
Root<OrdersEntity> root = criteriaQuery.from(OrdersEntity.class);
Predicate[] predicates = new Predicate[1];
predicates[0] = criteriaBuilder.equal(root.get("id"), searchText);
criteriaQuery.select(root).where(predicates);
TypedQuery<OrdersEntity> allQuery = session.createQuery(criteriaQuery);
List<OrdersEntity> ordersEntity = allQuery.getResultList();
return ordersEntity;
} catch (HibernateException e){
e.printStackTrace();
return null;
} finally {
if ( session != null) session.close();
}