Hibernate - выборка из бобов - PullRequest
0 голосов
/ 30 января 2011


Возможен ли этот теоретический запрос в спящем режиме?

Person personQuery = new Person();//(@Entity)
personQuery.setId(5);
List<Person> persons = personQuery.get("=").fetch();

значение

SELECT * from person WHERE id=5

Когда все просто, я хочу работать с компонентами (сущностями), а не с HQL.
Есть ли API, который это поддерживает?

Ответы [ 2 ]

1 голос
/ 30 января 2011

Если это только по id, то вы можете использовать:

Person person = session.get(Person.class, 5);

Spring's HibernateTempalte имеет метод findByExample, который выглядит так, как вам нужно.*

Он фактически использует API критериев гибернации:

Criteria executableCriteria = session.createCriteria(exampleEntity.getClass());
executableCriteria.add(Example.create(exampleEntity));
return executableCriteria.list();
0 голосов
/ 30 января 2011

Я предполагаю, что ваша цель - не нуждаться в объекте session для поиска, обновления и т. Д. В Java я не видел ничего подобного. Он был реализован в Grails как GORM с использованием Hibernate и работает путем динамического добавления методов во время выполнения.

Например, вы можете сделать прямой поиск по id:

def item = Item.get(itemId) // finds an item with a given id

Или легко выполнить HQL-запрос:

def items = Item.findAll("from Item as item where item.price < 50") // find all items where price < 50
...