Как создать спящий режим со свойствами в другой таблице? - PullRequest
1 голос
/ 29 декабря 2011

Я пытаюсь создать заказ на столе, и один из элементов, который будет «упорядочен», является свойством, которое находится в одном конце отношений.Указывать ли свойство по имени ключа , имени свойства (во внешней таблице) или имени таблицы? В настоящее время есть: order = new Order[]{Order.asc("lastControlDate"), Order.asc("idManufacturer"), Order.asc("model")}; где в idManufacturer является внешним ключом. Спасибо

Предприятия Производитель 1..M Автомобиль где:

Производитель:

public class Manufacturer{
    private Long idManufacturer;
    private String name;

//<editor-fold defaultstate="collapsed" desc="Constructors">
public Manufacturer(){
//getters and setters....

}

Автомобиль:

public class Car {
private long idCar;
private String model;
private Manufacturer manufacturer;
//Constructor, getters and setters...
}

order = new Order [] {Order.desc ("производитель"), Order.desc("модель")};

public static List<Car> listCarsByManufacturer(Manufacturer name, Order...orders)throws Exception{
        LinkedList<Criterion> criterions = new LinkedList<Criterion>();
        criterions.add(Restrictions.like("Car.manufacturer", name));

        List<Car> cars =carDAO.findAllCars(criterions, orders);
        return cars;
}

1 Ответ

3 голосов
/ 29 декабря 2011

Вы до сих пор не показали нам запрос, в CarDAO.findAllCars().

В любом случае, вот как вы получаете список автомобилей с отступом по названию производителя и заказ по идентификатору производителя:

Criteria c = session.createCriteria(Car.class, "car");
// to add a restriction on a property of manufacturer, you need
// an inner join on manufacturer
c.createAlias("car.manufacturer", "manufacturer"); 
c.add(Restrictions.like("manufacturer.name", name));
// you want to get the car with their manufacturer, so you need a fetch
c.setFetchMode(car.manufacturer", FetchMode.JOIN);
// you want to order by id of manufacturer
c.addOrder(Order.asc("manufacturer.idManufacturer"));

Все это очень хорошо объяснено в справочном руководстве Hibernate .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...