Hibernate findByExample on many to Many

时间:2013-03-06 20:38:20

标签: java spring hibernate

我对一些休眠大师的问题有一个问题

我有3个表UserCarCarList

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();

1 个答案:

答案 0 :(得分: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。我跳过了正确的通过它。咄!我想知道还有什么方法可以做到这一点吗?