Спящая ленивая собственность с проекциями - PullRequest
1 голос
/ 28 октября 2011

Если у вас есть боб MyClass с большим количеством свойств.

Если вы хотите ленивым получить одно свойство с @Basic( fetch=lazy), вам нужно правильно настроить свой класс?

но

что если вы сделаете проекцию на свой боб, а затем выполните ResultTransformer(TransFormers.aliasToBean(MyClass.class))

Примерно так:

 /*.get(Usuario.class, 1); this gets the wholeobject with out @Basic(fetch=lazy)*/
     Usuario usuario = (Usuario) session 
    .createCriteria(Usuario.class)
    .add(Restrictions.eq("id", 1))
    .setProjection(Projections.projectionList()
    .add(Projections.property("id").as("id")))
           .setResultTransformer(Transformers.aliasToBean(Usuario.class))
    .uniqueResult();

То естьтрюк.У вас есть только удостоверение личности, а не весь объект.

У меня вопрос.Этот объект Usuario такой же в кеше запросов и кеше, как если бы я получил его с .get()?

Изображение, у вас есть другой объект и вам нужно установить связь с usuario.

   // projected Usuario object
   AnotherObject.setUsuario(usuario);
   // this works okay, but its correct?

Спасибо.

...