2012-02-04 6 views
3

나는 Hibernate (4)와 ORM에 일반적으로 익숙하며 객체를 찾는 가장 쉽고 편리한 방법 인 을 알고 싶다. . Hibernate에서 임의의 속성에 의해 객체를 찾는다

class Foo { private Long id; private String name; private Integer age; private Integer favoriteNumber; private String catchphrase; } 

는 속성을 임의로 설정, 또는 다른 말로, 내가 (ID가 설정되지 않았을 수도 있습니다) 설정 속성을 알고하지 않습니다, 나는 Foo의 인스턴스를 말한다. 하지 null입니다 속성을 기반으로

, 나는 데이터베이스에서 일치하는 객체 (들)을 발견하고 싶습니다.

이상적으로는이 같은 방법을 사용할 것 : Foo의 목록을 반환

session.getCurrentSession().find(foo);합니다.

추신. 이것을 달성하기 위해 리플렉션을 사용하고 싶지 않습니다!

답변

5

사용 사례에 가장 좋은 방법은 예에 의해 쿼리를 사용하는 것입니다

session.getCurrentSession() 
    .createCriteria(Foo.class).add(Example.create(foo)).list(); 

UPDATE : 예에 의한 쿼리는 검색의 id 속성을 포함하지 않습니다. 여기서 id에 의한 쿼리에 관심이 없다고 가정했습니다. 당신이 ID를 알고 당신이 ID로의 요청에 의한 관심이 있다면 별도의 작업을 수행해야합니다

(Foo) session.getCurrentSession().get(Foo.class, fooId); 
관련 문제