0

我有一些休眠大师的问题

我有 3 张桌子User,,,CarCarList

Carlist是多对多

user --< carlist >-- car

我正在尝试使用内置的 findByExample 来查询 carlist。

到目前为止,我已经找到了如何在一张桌子上做到这一点,如下所示:

List results = session.createCriteria(CarSearchList.class)
    .add(Example.create(instance))
    .createCriteria("car")
    .add(Example.create(instance.getCar()))
    .list();

但是我怎么能在汽车和用户表上做到这一点呢?我在下面尝试过,但失败了:

List results = session.createCriteria(CarSearchList.class)
    .add(Example.create(instance))
    .createCriteria("car")
    .add(Example.create(instance.getCar()))
    .createCriteria("user")
    .add(Example.create(instance.getUser()))
    .list();
4

1 回答 1

0

好的,我想出了一种方法:

    List results = session.createCriteria(CarSearchList.class)
    .add(Example.create(instance))
    .createAlias("car", "car")
    .createAlias("user", "user")
    .add( Restrictions.eqProperty("car.carId",    "user.userId"))
    .list();

从手册 17.4. 我跳过了它。呸!我想知道还有什么其他方法可以做到这一点?

于 2013-03-06T20:51:20.483 回答