Предположим, у меня есть два POJO Hibernate: клиент и заказ.Таблица заказов имеет три соответствующих столбца: customerId, totalItemsSold и totalCost.В таблице Customer есть столбцы: customerId, firstName, lastName и city.
Я сопоставил множество-один между таблицами Order и Customer.Мой заказ POJO содержит объект Customer.Я хочу выполнить следующий запрос Criteria:
DetachedCriteria crit = DetachedCriteria.forClass(Order.class);
crit.add(Restrictions.eq("customer.city", "Chicago"));
getHibernateTemplate().findByCriteria(crit);
Всегда выдается следующее исключение:
org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: customer.city of: Order
Как я могу использовать Criteria для поиска заказов по городу клиента?Мой заказ Pojo содержит объект Customer с именем «Клиент» с соответствующими методами получения и установки .....
Редактировать (класс заказа / клиента) в соответствии с запросом:
public class Customer {
private Integer customerId;
private String firstName;
private String lastName;
private String city;
public Integer getCustomerId() { return customerId; }
public void setCustomerId(Integer customerId) { this.customerId = customerId; }
public String getFirstName() { return firstName; }
public void setFirstName(String firstName) { this.firstName = firstName; }
public String getLastName() { return lastName; }
public void setLastName(String lastName) { this.lastName = lastName; }
public String getCity() { return city; }
public void setCity(String city) { this.city = city; }
}
public class Order {
private Customer customer;
private Integer totalItemsSold;
private Integer totalCost;
public Customer getCustomer() { return customer; }
public void setCustomer(Customer customer) { this.customer = customer; }
public Integer getTotalItemsSold() { return totalItemsSold; }
public void setTotalItemsSold(Integer totalItemsSold) { this.totalItemsSold = totalItemsSold; }
public Integer getTotalCost() { return totalCost; }
public void setTotalCost(Integer totalCost) { this.totalCost = totalCost; }
}
Вот отображение hbm класса Order (которое содержит отображение между Customer и Order):
<many-to-one name="customer" class="Customer" column="customerId" />