Hibernate: в поисках способа упростить поиск объектов с использованием объекта - PullRequest
0 голосов
/ 23 июня 2011

Я использую Hibernate Core 3.3.4.GA. Я ищу способ упростить мой код (если это возможно). Прямо сейчас я хочу искать объекты типа «MyObj», используя экземпляр MyObj, который будет заполнен частично. Итак, у меня есть ...

// inputObj is a partially populated object of type MyObj
Criteria crit = session.createCriteria(MyObj.class);
if (inputObj.getField1() != null) { 
    crit.add( Restrictions.eq( "field1", inputObj.getField1() );
}
if (inputObj.getField2() != null) { 
    crit.add( Restrictions.eq( "field2", inputObj.getField2() );
}
…
List objects = crit.list();

Проблема в том, что есть более 20 полей, поэтому код обременителен. Есть ли способ упростить вышесказанное?

Спасибо, - Дейв

1 Ответ

1 голос
/ 23 июня 2011

Используйте org.hibernate.criterion.Example , чтобы получить описание поведения, которое вы описываете:

    List results = session.createCriteria(MyObj.class)
        .add( Example.create(inputObj) )
        .list();

Это описано в разделе 15.4 Справочной документации.

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